日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx代理webSocket经常中断的解决方案, 如何保持长连接

發(fā)布時間:2023/12/15 Nginx 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx代理webSocket经常中断的解决方案, 如何保持长连接 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么80%的碼農(nóng)都做不了架構師?>>> ??

背景

這天氣夠熱的,要處理的事情也夠多的。。。。

想看解決的,直接 ctrl+f搜索關鍵字‘配置點’##

開始前交代(想看原因的看這個,個人觀點,不代表正確)##

解說:今天用nginx反代通訊項目,發(fā)現(xiàn)平均1分鐘左右,就會出現(xiàn)webSocket連接中斷,然后查看了一下,是nginx出現(xiàn)的問題。

原因是:nginx等待你 第一次通訊和第二次通訊的時間差超過了它設定的最大等待時間,簡單來說就是,超時,所以就啪的一聲斷了,開始上解決步驟。

解決方案一

其實只要配置nginx.conf的對應localhost里面的這幾個參數(shù)就好
  • proxy_connect_timeout;
  • proxy_read_timeout;
  • proxy_send_timeout;
  • 解決方案二

    發(fā)心跳包,原理就是在有效地再讀時間內(nèi)進行通訊,重新刷新再讀時間

    備注:配置的位置為localhost,給出簡略地址

    http {server {location / {root html;index index.html index.htm;proxy_pass http://webscoket; proxy_http_version 1.1; proxy_connect_timeout 4s; #配置點1proxy_read_timeout 60s; #配置點2,如果沒效,可以考慮這個時間配置長一點proxy_send_timeout 12s; #配置點3proxy_set_header Upgrade $http_upgrade; #這是webSocket的配置,與此篇博客無關proxy_set_header Connection "Upgrade"; #這是webSocket的配置,與此篇博客無關}} }

    關于配置2的解釋

    備注:這個是服務器對你等待最大的時間,也就是說,當你webSocket使用nginx轉發(fā)的時候,用上面的配置2來說,如果60秒內(nèi)沒有通訊,依然是會斷開的,所以,你可以按照你的需求來設定

    舉例: 比如說,我設置了10分鐘,那么如果我10分鐘內(nèi)有通訊,或者10分鐘內(nèi)有做心跳的話,是可以保持連接不中斷的,詳細看個人需求 感謝評論區(qū) @zigzagroad 的指正,希望可以幫到你們,如果有更好的方式,麻煩分享一下,謝謝

    關于nginx相關配置的解釋,可以看一下這個

    地址:http://blog.csdn.net/liujiyong7/article/details/18228915

    轉載于:https://my.oschina.net/grkj/blog/1499744

    總結

    以上是生活随笔為你收集整理的Nginx代理webSocket经常中断的解决方案, 如何保持长连接的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。