NGINX挂起在封闭的websocket上游连接上

NGINX挂起在封闭的websocket上游连接上,nginx,Nginx,我正在利用上游块对两个节点实例进行负载平衡: 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;

我正在利用
上游
块对两个
节点
实例进行负载平衡:

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
问题,还是我的配置错误

我缺少
代理连接超时1s设置

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

现在一切都好了。看起来像是
nginx
现在等待大约
1s
来测试是否存在有效连接,如果没有,它将移动到下一个服务器。必须启用此设置,否则连接将挂起。(这可能是故意的,或者是一个bug,不确定)

我错过了
代理连接\u超时1s设置

        location = /Balancer {
                proxy_connect_timeout 1s;
                proxy_pass http://Balancer;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
        }
现在一切都好了。看起来像是
nginx
现在等待大约
1s
来测试是否存在有效连接,如果没有,它将移动到下一个服务器。必须启用此设置,否则连接将挂起。(这可能是故意的,也可能是一个bug,不确定)