proxy_buffer_size

为来自被代理服务器的响应设置缓冲区大小。 — NGINX HTTP Core

proxy_buffer_size
httpserverlocation
语法proxy_buffer_size size;
默认值4k or 8k, depending on the platform
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

NGINX 中的 `proxy_buffer_size` 指令允许您定义用于保存从被代理服务器接收的响应第一部分的缓冲区大小。该指令在处理动态响应时尤为重要,例如由脚本(PHP、Python 等)生成的响应,因为它设置了在开始处理之前可以存储在缓冲区中的响应头的最大大小。如果响应大于指定大小,NGINX 将分配更多缓冲区,这可能会根据这些缓冲区的大小和服务器配置影响性能。 在参数指定方面,`proxy_buffer_size` 接受单个参数表示缓冲区大小,可用字节、千字节(k)或兆字节(m)来指定值。例如,`proxy_buffer_size 16k;` 将缓冲区大小设置为 16k(16 千字节)。该指令可放置在 `http`、`server` 或 `location` 上下文中,根据配置需求灵活使用。需要注意的是,实际生效的缓冲区大小可能会受其他指令(如 `proxy_buffers`)的影响,后者决定单个响应分配的缓冲区总数。 在配置 `proxy_buffer_size` 时,应考虑上游服务器响应的特性。如果上游服务器经常发送较大的头部,增加此缓冲区大小可以防止 NGINX 不必要地重新分配缓冲区,从而避免性能下降。因此,合理使用该指令可以通过减少响应时间来提高服务器效率和用户体验。

配置示例

location /api/ {
    proxy_pass http://backend;
    proxy_buffer_size 16k;
}

将缓冲区大小设置得过低可能会导致响应头被截断,从而使应用程序行为不可预测。

注意服务器的内存限制;在大量并发连接发生时,过大的缓冲区可能会导致内存使用量过高。