an upstream response is buffered to a temporary file
這個錯誤也不會影響功能,意思是nginx默認的buffer太小,每個請求的快取太小,請求頭header太大時會出現快取不足,記憶體放不下上傳的檔案,就寫入到了磁盤中,使nginx的io太多,造成訪問中斷,
緩解的方法:
在nginx組態檔nginx.conf中加入配置:(根據實際情況配置數值)
client_max_body_size 2048m;
(設定請求體的大小,用nginx來做webserver的時,上傳大檔案時需要特別注意這個引數,否則會中斷在nginx的請求中是無法記錄到訪問的)
client_body_buffer_size 1024k;
(Nginx分配給請求資料的Buffer大小,如果請求的資料小于client_body_buffer_size直接將資料先在記憶體中存盤,)
proxy_buffer_size 256k;
(proxy_buffer_size所設定的buffer_size的作用是用來存盤upstream端response的header)
proxy_buffering on;
(proxy_buffering 是為了開啟response buffering of the proxied server,開啟后proxy_buffers和proxy_busy_buffers_size引數才會起作用)
proxy_buffers 64 128k;
proxy_busy_buffers_size 512k;
緩沖區設定的太小的話,Nginx 會頻繁讀寫硬碟,對性能有很大的影響,但也不是越大越好,沒意義
若配置完上面后日志中還是頻繁出現,則配置:
fastcgi_buffer_size 512k;
fastcgi_buffers 6 512k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;
fastcgi_intercept_errors on;
重啟nginx 或者 nginx -s reload
創作者:吳仔汕
歡迎大家參考,還可以提出疑問或者不同看法噢,
原創作品,轉載請標明出處!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/295129.html
標籤:其他
