fastcgi_buffering
指令 `fastcgi_buffering` 控制是否缓冲来自 FastCGI 服务器的响应。
NGINX HTTP Core
·
httpserverlocation
语法fastcgi_buffering on | off;
默认值on
上下文http, server, location
参数flag
说明
当 fastcgi_buffering 指令设置为 on 时,它会在将响应发送给客户端之前对来自 FastCGI 服务器的响应进行缓冲。该缓冲机制允许 NGINX 通过先将来自 FastCGI 服务器的整个响应体读取到缓冲区,然后再转发给客户端,从而更高效地处理响应。相反,当设置为 off 时,响应在接收后会立即传递给客户端,这可以提高响应速度,但可能以资源管理为代价,尤其是在高负载下。
当该指令设置为 on 时,NGINX 使用若干预设的缓冲区大小,这些大小可以使用诸如 fastcgi_buffers 和 fastcgi_buffer_size 等其他指令进行调整。总体的缓冲策略可以降低客户端的延迟,因为一旦完整响应被获取,NGINX 可以更快地发送更大的数据块,这对较大的响应体尤其有用。然而,缓冲需要谨慎管理;过度缓冲可能导致内存使用增加。
该指令可以在 http、server 或 location 上下文级别进行配置,根据具体需求实现灵活配置。理解两种设置(on 与 off)的影响对于基于应用需求对 NGINX 进行性能优化至关重要。
配置示例
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_buffering off;
include fastcgi_params;
}⚠
将 fastcgi_buffering 设置为 off 可能导致更高的 CPU 使用率,因为响应在不经过缓冲的情况下直接传递给客户端。
⚠
建议在使用 fastcgi_buffering on 时监测内存使用情况,因为大型响应可能会消耗大量内存资源。