scgi_request_buffering
`scgi_request_buffering` 指令控制 NGINX 中 SCGI 请求的缓冲。 — NGINX HTTP Core
scgi_request_buffering
httpserverlocation
语法scgi_request_buffering on | off;
默认值on
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
`scgi_request_buffering` 指令用于指定是否启用或禁用对 SCGI 请求体的缓冲。当启用缓冲(设置为 `on`)时,NGINX 会在将请求体传递给 SCGI 服务器之前将整个请求体读取到内存中。这可以通过让 NGINX 在一次操作中处理请求体来提升性能。但是,这也会增加内存使用,因为较大的请求体可能会超出可用内存限制,或在大量并发请求时消耗过多资源。 当禁用缓冲(设置为 `off`)时,NGINX 会在接收时将请求体分块传递给 SCGI 服务器。这可以将内存使用降到最低,适用于客户端发送大量数据的场景(例如文件上传),因为它允许服务器在开始接收数据后立即开始处理。为该指令选择合适的设置取决于应用的特性及所处理请求的类型。 该指令可在多个上下文中使用,包括 `http`、`server` 和 `location`,允许基于特定路由或处理规则进行灵活配置。正确使用 `scgi_request_buffering` 对于优化资源管理并保证应用的响应性能至关重要。
配置示例
location /scgi {
scgi_pass 127.0.0.1:4000;
scgi_request_buffering off;
}⚠
如果存在内存限制,可能需要禁用缓冲,但要注意这会影响性能。
⚠
不正确地设置此指令可能会导致意外结果,尤其是在那些依赖在发送任何响应之前处理整个请求体的应用程序中。