proxy_buffers
`proxy_buffers` 指令设置用于从被代理服务器读取响应时使用的缓冲区数量和大小。 — NGINX HTTP Core
proxy_buffers
httpserverlocation
语法proxy_buffers number size;
默认值4 8k
上下文http, server, location
模块NGINX HTTP Core
参数2
说明
`proxy_buffers` 指令在反向代理过程中对 NGINX 与上游服务器的交互方式进行关键控制。它指定在将从被代理服务器接收的数据发送给客户端之前,用于保存这些数据的缓冲区的数量和大小。每个缓冲区用于存储响应的片段,使 NGINX 能够在传递之前高效地聚合数据。该指令接受两个参数:缓冲区数量和每个缓冲区的大小,以字节为单位。例如,配置 `proxy_buffers 8 16k;` 表示 NGINX 将分配 8 个缓冲区,每个缓冲区可容纳 16KB 的数据。 当向 NGINX 发出涉及上游通信的请求(例如与后端 Web 服务器通信)时,响应会在这些缓冲区中处理。如果上游响应超过所分配缓冲区的总大小,NGINX 会将多余的数据直接写入客户端,绕过缓冲区。这对于在高负载下维持性能至关重要,因为它通过控制一次缓冲的数据量来避免内存过载。此外,如果缓冲区不足以容纳数据,可能会导致过多地向客户端写入数据,从而影响吞吐量。
配置示例
location / {
proxy_pass http://backend;
proxy_buffers 8 16k;
}⚠
确保总缓冲区大小足以处理预期的响应大小;否则,较大的响应可能导致性能下降。
⚠
过大的缓冲区会导致内存使用增加,这在资源有限的环境中可能并不理想。