2016-06-19 47 views
0

我利用upstream塊負載平衡二nodejs實例:NGINX掛在封閉的WebSocket上游連接

upstream Balancer { 
    least_conn; 
    server 127.0.0.1:9300; 
    server 127.0.0.1:9301; 
} 

位置指令:

location = /Balancer { 
        proxy_pass http://Balancer; 
        proxy_http_version 1.1; 
        proxy_set_header Upgrade $http_upgrade; 
        proxy_set_header Connection $connection_upgrade; 
     } 

一切工作正常。但是,如果9301實例發生故障並且新播放器連接到Balancer指令,nginx掛起並且未連接到9300(這是唯一一個活動)。它似乎仍在嘗試連接到已死亡的9301 ...。

我曾嘗試weight選項,就像這樣:

upstream Balancer { 
    least_conn; 
    server 127.0.0.1:9300 weight=1; 
    server 127.0.0.1:9301 weight=2; 
} 

這也許nginx問題,或者是我的配置錯了嗎?

回答

0

我錯過了proxy_connect_timeout 1s;設置。

​​

現在所有的作品。看起來像nginx現在等待1s左右來測試一個有效的連接,如果不是,它會移動到下一個服務器。該設置必須啓用或連接將掛起。 (這可能是有意的,或一個錯誤,不確定)

相關問題