解决Nginx报错:an upstream response is buffered to a temporary file

最近某个应用用户登录的时候登录不上,应用跳转不过去。
发现Nginx下有错误日志:

2020/09/15 17:17:28 [warn] 1427#1427: *1786 an upstream response is buffered to a temporary file

这个问题应该是请求头过大,fastcgi_buffers默认设置太小导致,贴个Nginx的buffer机制:

0Sb8Ln.png

  1. 当被代理服务器向nginx proxy发送数据时,proxy buffer会判断本次响应的数据量的大小。
  2. 如果buffer足够,那么本次响应数据直接写入buffer。
  3. 如果buffer装不下本次响应的数据,那么nginx服务器会将部分接收到的数据临时存放在磁盘的临时文件中,磁盘上的临时文件路径可以通过proxy_temp_path指定,临时文件的大小有proxy_max_temp_file_size和proxy_temp_file_write_size指令决定
  4. 一次响应数据接收完成或者buffer已经转满,nginx服务器开始向客户端传输数据

修改Nginx配置文件:

fastcgi_buffer_size 512k;
fastcgi_buffers 6 512k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;

业务恢复正常

添加新评论