You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSE事件延迟半分钟到达客户端,请问Nginx代理需做哪些配置?

问题根因

你遇到的SSE事件延迟问题核心是Nginx默认启用了代理缓冲机制:对于后端返回的响应内容,Nginx会先写入缓冲区,等到缓冲区填满或者达到默认超时时间后,才会批量发送给客户端。SSE推送的单条事件体积通常远小于Nginx默认缓冲区大小,因此会被阻塞直到超时才推送,最终表现为几十秒的延迟。

需配置的Nginx规则

在Nginx配置中匹配SSE接口的location块内添加以下配置即可:

location /emitter/ {
    # 替换为你的Node.js后端服务地址
    proxy_pass http://你的Node服务地址;
    
    # 核心配置:关闭代理缓冲,收到后端内容立刻转发给客户端
    proxy_buffering off;
    # 使用HTTP 1.1协议,原生支持长连接
    proxy_http_version 1.1;
    # 保留长连接设置,避免Nginx默认断开长连接
    proxy_set_header Connection "";
    # 调整读取超时,和你后端设置的2分钟连接超时对齐,避免无事件时Nginx主动断连
    proxy_read_timeout 120s;
    
    # 常规请求头透传配置,可保留原有配置
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}
额外补充检查项
  1. 可在后端SSE接口的响应头中新增'X-Accel-Buffering': 'no',强制Nginx对该接口关闭缓冲,作为双重保险。
  2. 检查AWS负载均衡(ALB)的空闲超时配置:ALB默认空闲超时为60s,若超过60s无数据传输会主动断开连接,需要将该值调整到大于等于你设置的SSE最大连接时长(此处可调整为120s以上)。

内容的提问来源于stack exchange,提问作者franmcod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:24:07