SSE流式输出的过程中,如果采用Nginx进行反向代理,在某些情况下会出现无法实现流式返回,而是一次性返回。主要原因是因为Nginx的配置中并没有禁用缓存响应。

在处理SSE请求时,你需要确保Nginx不会缓冲或者阻断流式响应。

以下是一个适用于SSE的Nginx配置示例:

location /chat {
    proxy_pass http://172.17.0.1:9090;
    proxy_http_version 1.1;
    proxy_set_header Connection '';
    proxy_set_header Host $host;
    proxy_cache off;
    
    # 关键配置
    proxy_buffering off;
    proxy_set_header X-Real-IP $remote_addr;
}

这里的关键是proxy_buffering off;,这将禁止Nginx缓冲响应,以便可以立即发送到客户端,从而实现流式传输。

另外,如果你使用了SSL/TLS加密(HTTPS),你可能还需要添加 proxy_ssl_session_reuse off; 来防止SSL/TLS会话重用导致的问题。



SSE流式输出Nginx缓冲配置插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:https://choupangxia.com/2024/01/03/sse-nginx-conf/