fastcgi_request_buffering

指令 `fastcgi_request_buffering` 控制是否为 FastCGI 请求启用请求体缓冲。 — NGINX HTTP Core

fastcgi_request_buffering
httpserverlocation
语法fastcgi_request_buffering on | off;
默认值on
上下文http, server, location
模块NGINX HTTP Core
参数flag

说明

在 NGINX 中,指令 `fastcgi_request_buffering` 允许管理员在 FastCGI 模块处理请求时启用或禁用对请求体的缓冲。默认情况下,当该指令设置为 'on' 时,NGINX 会在将请求体传递给 FastCGI 进程之前缓冲整个请求体。这可以提升性能,尤其是在应用需要在处理前获得完整请求数据的场景中。 但是,将 `fastcgi_request_buffering` 设置为 'off' 允许请求直接流式传输到 FastCGI 应用,而无需在 NGINX 中进行中间缓冲。对于处理大文件上传或应用实时处理数据的情况,这尤其有用。使用此设置后,数据可以在接收时开始被处理,可能降低内存消耗并提高大型有效载荷或长时间运行请求的响应性。 该指令可以在 `http`、`server` 或 `location` 上下文级别指定,从而根据特定位置或 `server` 块的需要对请求处理行为进行细粒度控制。

配置示例

location /upload {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_request_buffering off;
}

禁用请求缓冲可能会导致小请求的性能下降,因为流式处理会产生额外开销。

某些应用可能期望请求主体被完全缓冲,当此指令设置为 off 时,可能会导致意外行为。