1. 程式人生 > >筆記搬到部落格 - Nginx代理websocket超時連線斷開問題

筆記搬到部落格 - Nginx代理websocket超時連線斷開問題

經過網路搜尋、整理、實踐筆記

 

配置nginx使之支援websockt的反響代理後,發現websockt連線上就立即斷開,狀態碼為:1006

最後查到原因是proxy_read_timeout 太小,這便是websockt的有效時間

現在配置成3600,也就是維持一個小時,來解決需求。

 

 

成功,測試中一小時內沒有出現過斷開的現象

不過有網友懷疑proxy_read_timeout的引數的真實意義,修改的值太大可能導致某些使用者的超時訪問不能有效處理

經過測試,如果proxy_read_timeout 配置為5秒,訪問網頁的時候,如果伺服器響應時間超過五秒會返回

504

Gateway Time-out

所以目前通過增加心跳的方法保持websocket是啟用狀態

 

 

本地配置:

location /operation-console-service/websocket {

proxy_pass http://127.0.0.1:8080/operation-console-service/websocket;

proxy_http_version 1.1;

# 讀取超時設定

proxy_read_timeout 3600s;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

}

 

 

【強烈推薦!非廣告!】阿里雲雙11褥羊毛活動(10.29-11.12):https://m.aliyun.com/act/team1111?from=singlemessage&isappinstalled=0#/share?params=N.FF7yxCciiM.5rnfefip 。新用 。新使用者低至一折購買【1核2GIM1年99元,2年199元,3年298元】【2核4GIM1年545元,2年927元,3年1227元】【2核8G5M3年2070元】,建議購買兩核的伺服器,1核的伺服器CPU使用率會有限制。老使用者可以加入我參加的戰隊,然後分享自己的連結,可以獲得紅包和25%的返現,我們的戰隊目前1000多位新人,目前排名第2,後面可以瓜分百萬現金(按拉新人數瓜分現金,拉的越多分的越多!不要自己重新開戰隊,後面不能參與瓜分現金)。