1. 程式人生 > >配置nginx反向代理時,要注意的許可權設定

配置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

http://127.0.0.1:8080 ;
            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;
      #設定快取資料夾大小,大於這個值,將從upstream伺服器傳

   問題就出在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解決