uwsgi_buffering

指令 `uwsgi_buffering` 控制 NGINX 是否对来自 uWSGI 应用的响应进行缓冲。 — NGINX HTTP Core

uwsgi_buffering
httpserverlocation
语法uwsgi_buffering on | off;
默认值on
上下文http, server, location
模块NGINX HTTP Core
参数flag

说明

该 `uwsgi_buffering` 指令用于 NGINX 中,用以确定来自上游 uWSGI 服务器的响应如何被处理。当设置为 'on' 时,NGINX 会在将来自 uWSGI 应用的整个响应发送给客户端之前将其缓冲。这样可以通过让 NGINX 在内部处理响应来优化内容传递,从而减少发送给客户端的 TCP 包数量并提高连接处理的效率。 相反,当设置为 'off' 时,NGINX 会在从 uWSGI 应用收到响应时将其实时流式传输给客户端。对于逐步生成输出的应用或需要实时响应的场景(例如 long-polling 或 server-sent events),此设置可能更有利。 该指令很灵活,可在 `http`、`server` 或 `location` 上下文中使用。其值为一个标志,接受 'on' 或 'off'。默认情况下,如果未显式设置,则对 uWSGI 响应启用缓冲。应根据应用的性能特性和需求在缓冲与非缓冲之间谨慎选择,以避免对响应时间或资源利用产生潜在的不利影响。

配置示例

location /myapp {
    uwsgi_pass myapp;
    uwsgi_buffering off;
}

注意,将 buffering 设置为 'off' 可能导致资源使用增加,因为 NGINX 会维持更多的打开连接。

当 buffering 被禁用时,NGINX 可能无法有效压缩响应,因为它会按收到的方式发送数据。

如果应用程序响应缓慢,流式传输大型响应可能会导致客户端看到响应的延迟。