Nginx的流式响应配置实现小结
Nginx的流式响应配置
使用ChatGPT的能力在聊天时来实现打字机效果,因此需要服务端接口进行流式响应,碰到了几个问题:
1、服务端明明配置了响应头的Content-Type为:text/event-stream,但前端仍然不是流式接收内容。
2、虽然前端能以流式接收服务端的响应内容,但内容接收完毕,长连接并未关闭,导致前端还以为服务端有数据,会一直请求服务端,最后导致超时。
最后发现是nginx的问题,由于本地对接的时候并未启用nginx,所以本地对接没有任何问题。而线上使用nginx请求转发,有些配置是有默认参数的,所以会失败。因此,在这里分享一下,如果小伙们遇到同样的问题,可以试一试。
nginx部分配置如下:
server {
server_name xxxx;
listen xxxx;
location /xx/xx {
add_header backendIP $upstream_addr;
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_http_version 1.1; # 设置http版本为1.1;默认为:1.0
proxy_set_header Connection ""; # 设置Connection为长连接;默认为:no
proxy_cache off; # 关闭缓存;默认是:on
proxy_buffering off; # 关闭代理缓冲;默认是:on
chunked_transfer_encoding on; # 开启分块传输编码
tcp_nopush on; # 开启TCP NOPUSH选项,禁止Nagle算法
tcp_nodelay on; # 开启TCP NODELAY选项,禁止延迟ACK算法
keepalive_timeout 60; # 设定keep-alive超时时间为60秒
proxy_pass http://xxxx:xxxx;
proxy_redirect off;
proxy_connect_timeout 15; # 与upstream server的连接超时时间(没有单位,最大不可以超过75s)
proxy_send_timeout 300; # 发送请求给upstream服务器的超时时间
proxy_read_timeout 300; # nginx会等待多长时间来获得请求的响应
}
}
最主要的几个配置:
- proxy_http_version 1.1;
- proxy_set_header Connection “”;
- proxy_cache off;
- proxy_buffering off;
- chunked_transfer_encoding on;
知识点:
Nginx 是通过缓存响应内容来处理请求的。也就是说,当 Nginx 接收到完整的响应后,才会将其发送给客户端,因此默认是不支持流式响应,需要手动开启。
到此这篇关于Nginx的流式响应配置实现小结的文章就介绍到这了,更多相关Nginx 流式响应配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
nginx报错connect() failed(111: Connection refus
本文主要介绍了nginx报错connect() failed(111: Connection refused)while connecting to upstream解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-06-06
504 Gateway Timeout网关超时的根源及完美解决方法
在日常开发和运维过程中,504 Gateway Timeout 错误是常见的网络问题之一,尤其是在使用反向代理(如 Nginx)或负载均衡时,遇到这种错误会导致网站无法访问,严重影响用户体验,这篇文章主要介绍了504 Gateway Timeout网关超时完美解决方法,需要的朋友可以参考下2025-08-08
Nginx代理Vue项目出现Invalid Host header问题及解决
在使用Nginx的upstream对Vue项目进行负载均衡时,如果代理地址无法访问目标地址且页面报错InvalidHostheader(无效主机头),可能是由于Vue项目的主机检查配置导致的,解决方法是在Vue项目的webpack.dev.js文件中的devServer下添加disableHostCheck:true,跳过主机检查2024-12-12


最新评论