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
创作者:吴仔汕
欢迎大家参考,还可以提出疑问或者不同看法噢。
原创作品,转载请标明出处!!
更多推荐
an upstream response is buffered to a temporary file
发布评论