SSE流式响应Nginx配置
2025/4/10...小于 1 分钟
SSE流式响应Nginx配置
现在大模型场景繁多,项目中涉及 nginx 转发大模型的流式数据时,需配置nginx的转发策略:
location /streaming {
proxy_pass http://backend_server;
proxy_cache off; # 关闭缓存
proxy_buffering off; # 关闭代理缓冲
chunked_transfer_encoding on; # 开启分块传输编码
tcp_nopush on; # 开启TCP NOPUSH选项,禁止Nagle算法
tcp_nodelay on; # 开启TCP NODELAY选项,禁止延迟ACK算法
keepalive_timeout 300; # 设定keep-alive超时时间为300秒
}
SSE流式输出的过程中,如果采用Nginx进行反向代理,在某些情况下会出现无法实现流式返回,而是一次性返回。主要原因是因为Nginx的配置中并没有禁用缓存响应。
这里的关键是proxy_buffering off;
,这将禁止Nginx缓冲响应,以便可以立即发送到客户端,从而实现流式传输。 另外,如果你使用了SSL/TLS加密(HTTPS),你可能还需要添加 proxy_ssl_session_reuse off;
来防止SSL/TLS会话重用导致的问题。