fastcgi_buffering
指令 `fastcgi_buffering` 控制是否缓冲来自 FastCGI 服务器的响应。 — NGINX HTTP Core
fastcgi_buffering
httpserverlocation
语法fastcgi_buffering on | off;
默认值on
上下文http, server, location
模块NGINX HTTP Core
参数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` 时监测内存使用情况,因为大型响应可能会消耗大量内存资源。