1. 程式人生 > >關於Nginx反向代理websocket,1分鐘中斷的解決

關於Nginx反向代理websocket,1分鐘中斷的解決

發心跳包,原理就是在有效地再讀時間內進行通訊,重新重新整理再讀時間

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

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

關於配置2的解釋

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

舉例: 
比如說,我設定了10分鐘,那麼如果我10分鐘內有通訊,或者10分鐘內有做心跳的話,是可以保持連線不中斷的,詳細看個人需求

個人觀點,僅供參考

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