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,不确定)