proxy_buffering
proxy_buffering 指令用于启用或禁用对来自被代理服务器的响应进行缓冲。 — NGINX HTTP Core
proxy_buffering
httpserverlocation
语法proxy_buffering on | off;
默认值on
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
`proxy_buffering` 指令在 NGINX 中控制是否在将来自被代理服务器的响应发送给客户端之前对其进行缓冲。当设置为 'on' 时,NGINX 会缓冲来自被代理服务器的整个响应,这可以通过让 NGINX 以一次优化的网络操作将响应发送给客户端来改善性能。对于大型响应尤其有益,因为连接开销会显著影响性能。相反,将 `proxy_buffering` 设置为 'off' 则允许 NGINX 在接收响应的同时将其传输给客户端,这在需要直接流式传输数据或有低延迟需求(例如实时应用)时很有用。 该指令可以应用于诸如 http、server 和 location 等不同上下文,允许你根据具体性能需求灵活地对应用的不同部分使用缓冲。如果你有多个后端并且需要对每个后端使用不同的缓冲配置,可以分别调整 `proxy_buffering` 设置以适应这些场景。请注意,当启用缓冲时,NGINX 还会使用其他与代理相关的指令(例如 `proxy_buffers` 和 `proxy_buffer_size`)中定义的设置来管理在发送给客户端之前需要缓冲的数据量。
配置示例
location /api {
proxy_pass http://backend;
proxy_buffering off;
}⚠
禁用缓冲可能导致内存使用增加,尤其是在响应较大且发送缓慢的情况下。
⚠
当 proxy_buffering 被关闭时,客户端可能会在整个响应完全可用之前收到部分响应。