搭建一个简单的负载均衡,然后关闭其中一台再来访问,会发现我们的浏览器卡住一直转圈圈,过了很久才会显示结果。由此我们可以得出结论Nginx负载的时候如果其中一台服务挂掉了,它会把请求转发到另一个可以提供服务的机器,其中这之间的超时等待默认是60s。我们可以通过这一个配置去改变这个时间,proxy_connect_timeout
定义与代理服务器建立连接的超时。
请注意,此超时通常不能超过75秒。
upstream cluster{
server nacos-node1.strongman.cluster.local:8848;
server nacos-node2.strongman.cluster.local:8848;
server nacos-node3.strongman.cluster.local:8848;
server nacos-node4.strongman.cluster.local:8848;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://cluster;
proxy_set_header Host $http_host;
# 添加 HTTP 响应头,以便知道负载到哪台服务器上
add_header backendIP $upstream_addr;
# 响应码
add_header backendCode $upstream_status;
# 服务器与被代理服务连接超时时间,代理超时
proxy_connect_timeout 60s;
}
}