配置nginx反向代理時,要注意的許可權設定
MYPM演示環境(www.mypm.cc/mypm
)
中當下載大的附件,或是頁面中有大圖片時,就會下載中斷或是圖版無法顯示
也許你要說我用的nginx預設的設定沒碰到這問題,那是因為你的網站沒大檔案檢視 nginx 日誌failed (13: Permission
denied) while reading upstream
怪了為什麼說沒許可權呢,當時這問題搞了2個多小時,在這期間不得不用tomcat當代理伺服器 引出了貼子
一個意外把tomcat 當代理伺服器用 http://blog.csdn.net/MYPM_AndyLiu/archive/2011/01/21/6156839.aspx
且看下面是我這MYPM配的nginx反向代理
location /mypm {
root /home/mypmcc/mypm20100914;
index index.jhtml index.html login_page.jhtml;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_pass
client_max_body_size 100m;
client_body_buffer_size 128k;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 6000;
proxy_buffer_size 32k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 512k;
}
nginx 反向代理引數說明
proxy_connect_timeout 600; #nginx跟後端伺服器連線超時時間(代理連線超時)
proxy_read_timeout 600; #連線成功後,後端伺服器響應時間(代理接收超時)
proxy_send_timeout 600; #後端伺服器資料回傳時間(代理髮送超時)
proxy_buffer_size 32k; #設定代理伺服器(nginx)儲存使用者頭資訊的緩衝區大小
proxy_buffers 4 32k; #proxy_buffers緩衝區,網頁平均在32k以下的話,這樣設定
proxy_busy_buffers_size 64k; #高負荷下緩衝大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;
問題就出在proxy_temp_file_write_size上,當你的檔案超過該引數設定的大小時,nginx會先將檔案寫入臨時目錄(預設為nginx安裝目下/proxy_temp目錄),
預設nginx是以nobody身份啟動的,用ls -al 命令檢視proxy_temp目錄 nobody是proxy_temp目錄的所有者,怪了那為什麼沒許可權呢,接下來我檢視proxy_temp的父目錄既nginx安裝目錄。發現 nobody競然沒許可權,怪不得會出上面的問題
然後設定任何人都可以寫 proxy_temp目錄,再重啟示nginx解決