Nginx an upstream response is buffered to a temporary file

2022年4月15日16:22:03Nginx an upstream response is buffered to a temporary file已关闭评论

错误日志:warn:an upstream response is buffered to a temporary file

fastcgi_buffers 控制 nginx 最多创建 8 个大小为 4K 的缓冲区,而 fastcgi_buffer_size 则是处理 Response 时第一个缓冲区的大小,不包含在前者中。所以总计能创建的最大内存缓冲区大小是 84K+4K = 36k。而这些缓冲区是根据实际的 Response 大小动态生成的,并不是一次性创建的。比如一个 8K 的页面,Nginx 会创建 24K 共 2 个 buffers。

当 Response 小于等于 36k 时,所有数据当然全部在内存中处理。如果 Response 大于 36k 呢?fastcgi_temp 的作用就在于此。多出来的数据会被临时写入到文件中,放在这个目录下面。同时你会在 error.log 中看到一条类似 warning。

fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 128k;

另,如果nginx以proxy模式运行,则需更改上面一段为如下内容:

proxy_buffer_size 128k;
proxy_buffers 8 128k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 128k;
proxy_temp_file_write_size 128k;

错误日志: "fastcgi_busy_buffers_size" must be less than the size of all "fastcgi_buffers"

fastcgi_busy_buffers_size size (单位为K,一般为fastcgi_buffers值的2倍)

本文地址:http://81uyu.com/uyu/1197.html Nginx an upstream response is buffered to a temporary file
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin