scgi_busy_buffers_size

指令 `scgi_busy_buffers_size` 指定了在 NGINX 中用于存储正在处理的 SCGI 响应的缓冲区大小。 — NGINX HTTP Core

scgi_busy_buffers_size
httpserverlocation
语法scgi_busy_buffers_size size;
默认值16k;
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

`scgi_busy_buffers_size` 指令是一个重要的配置选项,用于确定为尚未发送给客户端的繁忙 SCGI 响应分配的缓冲区大小。在处理 SCGI 请求时,缓冲区非常关键,因为它们允许服务器在等待来自 FastCGI 或 SCGI 上游服务器的响应时高效地管理数据。缓冲区大小会影响服务器在高负载下的性能,尤其是在处理大负载或高请求率时。 当请求正在处理且上游响应未立即发送给客户端时,响应会临时存储在繁忙缓冲区中。`scgi_busy_buffers_size` 设置在指定上下文 (http, server, location) 中为处理请求分配的所有繁忙缓冲区的总大小。如果指定的大小被超出,将会启用其他机制,例如缓冲限制和可能的速率限制。应根据预期负载和服务器通常处理的响应大小来配置该指令,以确保性能保持最佳。 该指令的参数以字节为单位,并可以根据需要取值以适应预期的工作负载。值得注意的是,该指令与其他与 SCGI 相关的设置协同工作,其有效性取决于请求处理、超时和上游服务器行为的整体配置。

配置示例

http {
    scgi_busy_buffers_size 32k;
}

将缓冲区大小设置得过小可能导致请求丢失或过度缓冲,从而增加延迟。

较大的缓冲区大小会显著增加内存使用,因此需要在性能需求与可用资源之间取得平衡。