如果客戶端POST一個比較大的文件,長度超過了nginx緩衝區的大小,需要把這個文件的部分或者全部內容暫存到client_body_temp目錄下的臨時文件,這個目錄沒有設置權限的時候,會報404錯誤,問題通常出現在本地環境上,
解決方法:
開啓nginx日誌,到日誌目錄下,tail -F 日誌名,訪問頁面報nginx404,日誌打印發現報
open() "/xxx/xxx/xxx/xxx/xxx/client_body_temp/0000000153" failed (13: Permission denied)
解決方案1
給這個目錄權限
mac (本人解決方法)
sudo chmod -R 777 /usr/local/var/run/nginx/client_body_temp/
(可解決問題,權限太高了,但不太建議這麼做)
解決方案2(網上查的,沒有親測過)
在nginx的配置中加入client_body_temp目錄創建路徑 client_body_temp_path /spool/nginx/client_temp 3 2;
可能創建的文件路徑爲
/spool/nginx/client_temp/702/45/00000123457