搭建一个简单的负载均衡,然后关闭其中一台再来访问,会发现我们的浏览器卡住一直转圈圈,过了很久才会显示结果。由此我们可以得出结论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;} }
参考配置
Module ngx_http_proxy_module