一、以Nginx为例
Nginx 会缓存代理服务器的响应(聚合类型),服务推送的数据被 Nginx 缓存到缓冲区,导致客
户端没有实时收到数据,而是等到服务所有数据推送完后,客户端才一次性收到了所有数据


二、适配方案:
禁用缓存功能:

服务端响应时除了设置 SSE所必须的 Response Header 外,

还需要添加非标Header

X-Accel-Buffering:no

告知Nginx不缓存响应,确保数据实时发送到客户端。

三、值得注意的是:

在多层网络架构的环境下

X-Accel-Buffering:no Header

在各层网关之间转发时会丢失,所以在多层网络架构下 Nginx 需要添加

proxy_pass header X-Accel-Buffering

来确保整条链路上Header的传递。

二、中间层node则是设置单独绕过compression

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐