Nginx的流式響應(yīng)配置實現(xiàn)小結(jié)
Nginx的流式響應(yīng)配置
使用ChatGPT的能力在聊天時來實現(xiàn)打字機效果,因此需要服務(wù)端接口進行流式響應(yīng),碰到了幾個問題:
1、服務(wù)端明明配置了響應(yīng)頭的Content-Type為:text/event-stream,但前端仍然不是流式接收內(nèi)容。
2、雖然前端能以流式接收服務(wù)端的響應(yīng)內(nèi)容,但內(nèi)容接收完畢,長連接并未關(guān)閉,導(dǎo)致前端還以為服務(wù)端有數(shù)據(jù),會一直請求服務(wù)端,最后導(dǎo)致超時。
最后發(fā)現(xiàn)是nginx的問題,由于本地對接的時候并未啟用nginx,所以本地對接沒有任何問題。而線上使用nginx請求轉(zhuǎn)發(fā),有些配置是有默認參數(shù)的,所以會失敗。因此,在這里分享一下,如果小伙們遇到同樣的問題,可以試一試。
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; # 設(shè)置http版本為1.1;默認為:1.0
proxy_set_header Connection ""; # 設(shè)置Connection為長連接;默認為:no
proxy_cache off; # 關(guān)閉緩存;默認是:on
proxy_buffering off; # 關(guān)閉代理緩沖;默認是:on
chunked_transfer_encoding on; # 開啟分塊傳輸編碼
tcp_nopush on; # 開啟TCP NOPUSH選項,禁止Nagle算法
tcp_nodelay on; # 開啟TCP NODELAY選項,禁止延遲ACK算法
keepalive_timeout 60; # 設(shè)定keep-alive超時時間為60秒
proxy_pass http://xxxx:xxxx;
proxy_redirect off;
proxy_connect_timeout 15; # 與upstream server的連接超時時間(沒有單位,最大不可以超過75s)
proxy_send_timeout 300; # 發(fā)送請求給upstream服務(wù)器的超時時間
proxy_read_timeout 300; # nginx會等待多長時間來獲得請求的響應(yīng)
}
}
最主要的幾個配置:
- proxy_http_version 1.1;
- proxy_set_header Connection “”;
- proxy_cache off;
- proxy_buffering off;
- chunked_transfer_encoding on;
知識點:
Nginx 是通過緩存響應(yīng)內(nèi)容來處理請求的。也就是說,當(dāng) Nginx 接收到完整的響應(yīng)后,才會將其發(fā)送給客戶端,因此默認是不支持流式響應(yīng),需要手動開啟。
到此這篇關(guān)于Nginx的流式響應(yīng)配置實現(xiàn)小結(jié)的文章就介紹到這了,更多相關(guān)Nginx 流式響應(yīng)配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx proxy_set_header參數(shù)設(shè)置
本文主要介紹了Nginx proxy_set_header參數(shù)設(shè)置,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
nginx轉(zhuǎn)發(fā)squid代理實現(xiàn)方式
本文介紹了如何使用nginx的stream模塊將客戶端請求轉(zhuǎn)發(fā)至squid服務(wù)器,首先概述了所需的服務(wù)器環(huán)境配置,接著詳細描述了nginx配置stream模塊與http模塊的方法,強調(diào)二者是平行關(guān)系,最后提供了具體的配置示例,并強調(diào)這些內(nèi)容是作者的經(jīng)驗總結(jié)2026-04-04
Nginx出現(xiàn)403?Forbidden的幾種簡單解決方式
這篇文章主要介紹了Nginx出現(xiàn)403?Forbidden的幾種解決思路,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
nginx外網(wǎng)訪問內(nèi)網(wǎng)站點配置操作
這篇文章主要介紹了nginx外網(wǎng)訪問內(nèi)網(wǎng)站點配置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
nginx配置中proxy_pass反向代理502的bug記錄
這篇文章主要介紹了nginx配置中proxy_pass反向代理502的bug記錄,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01

