智慧团建网站首页,酒店网络推广怎么做,去除wordpress rss图标,将wordpress部署Nginx的流式响应配置 使用ChatGPT的能力在聊天时来实现打字机效果#xff0c;因此需要服务端接口进行流式响应#xff0c;碰到了几个问题#xff1a; 1、服务端明明配置了响应头的Content-Type为#xff1a;text/event-stream#xff0c;但前端仍然不是流式接收内容。 2、…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.0proxy_set_header Connection ; # 设置Connection为长连接默认为no proxy_cache off; # 关闭缓存默认是onproxy_buffering off; # 关闭代理缓冲默认是onchunked_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的连接超时时间没有单位最大不可以超过75sproxy_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 接收到完整的响应后才会将其发送给客户端因此默认是不支持流式响应需要手动开启。 希望能帮助到你有问题可以留言互相学习