scgi_buffers

`scgi_buffers` 指令设置用于 SCGI 响应的缓冲区数量和大小。 — NGINX HTTP Core

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

说明

`scgi_buffers` 指令用于在 NGINX 中优化对 SCGI (Simple Common Gateway Interface) 响应的处理。它指定服务器在将来自 SCGI 服务器的响应传递给客户端之前,用于存储该响应的缓冲区数量及每个缓冲区的大小。通过适当配置缓冲区,可以在内存使用和性能之间取得平衡;较大的缓冲区有助于减少从 SCGI 服务器的读取次数,从而可能加快响应的传递,尤其是对于较大的响应。 该指令接受两个参数:第一个表示缓冲区的数量,第二个表示每个缓冲区的大小。缓冲区按每个请求分配,这意味着较大的数量可以使服务器更高效地处理多个并发连接。但应注意不要分配过多内存,否则可能导致内存消耗增加并出现性能下降。 `scgi_buffers` 指令可在 `http`、`server` 或 `location` 配置段中设置,便于根据应用的扩展需求和特定端点进行灵活配置。该指令与 NGINX 中其他与缓冲区相关的设置互为补充,可与它们一起调优以获得最佳性能。

配置示例

server {
    listen 80;
    location /app {
        scgi_pass localhost:4000;
        scgi_buffers 8 16k;
    }
}

如果将缓冲区大小设置得过小,当数据超过缓冲区大小时可能导致响应不完整。

如果设置过多的缓冲区,可能会导致内存使用增加,尤其在高负载情况下。