遇到兩個問題
1. 選擇日期功能,不起作用了
2. 下載稍大一點的文件,只能下載一小頁調試發現有ERR_CONTENT_LENGTH_MISMATCH錯誤
系統:CentOS,Nginx,proxy到後端的tomcat
proxy_temp目錄中,然而對這個目錄沒有讀取和寫入權限
解決過程:
_RCON解決過程:
:調試頁ENGTH_MISMATCH在chrome下,請快取或強制刷新,response的status code為200
不強制刷新,response的status code為206
實際長度是一致的都會出上面這個content length mismatch錯誤
如果不通過nginx,直接訪問tomcat,沒有這個錯誤,系統功能正常。
各種搜,先查到了一個帖子,問題描述很相似,提到是nginx gzip壓縮,由於nginx對檔案做了壓縮準備,按照壓縮後的長度來處理資料流,但透過proxy傳過來的資料實際上沒有被壓縮,沒有傳完,ngnix就關閉連線了。
從log來看,tomcat這邊確實出現了很多org.apache.catalina.connector.ClientAbortException,與前面出現ERRO_CONTENT_LENGTH_MISMATCH的請求相符。
開始學習nginx gzip的配置(準備另做一篇筆記)
,先解決了問題
醒了,還是沒頭緒,老老實實去查log
/var/log/nginx/error.logo
/var/log/nginx/error.log
2015/05/30 00:11:53 [crit] 8808#0: *60 open() "/var/cache/nginx/proxy_temp/2/01/0000000012" failed (13: Permission denied) while reading upstream, client:...
proxy_temp目錄,owner是root,rwx權限,其他使用者沒有權限。
nginx是以nginx用戶身份運行的,沒有權限,boom!
解決方法:
1.用croot
3.將proxy_temp目錄的group設定為nginx,並賦予rwx權限
4. 停用cache
遺留的問題:
1. proxy_temp目錄的owner一開始為什麼是root?應該是root嗎?
2. 選擇方法3後,發現對於同一個文件,會產生多份cache,不合理,為什麼會這樣?
3. 對於我們這個情況,需要cache嗎?會不會停用cache才是比較合理的選擇
>> to be continued 5-05-30
以上就介紹了透過Nginx存取後端應用,ERR_CONTENT_LENGTH_MISMATCH 問題的解決,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。