rob*_*mag 30 cluster nginx failover load-balancing
我正在使用 nginx 和 NginxHttpUpstreamModule 进行负载平衡。我的配置很简单:
upstream lb {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
server {
listen 89;
server_name localhost;
location / {
proxy_pass http://lb;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Run Code Online (Sandbox Code Playgroud)
但是使用此配置,当 2 个后端服务器之一关闭时,nginx 仍将请求路由到它,并且导致一半时间超时:(
是否有任何解决方案可以让 nginx 在检测到关闭的服务器时自动将请求路由到另一台服务器。
谢谢你。
Gui*_*ion 35
我认为这是因为 nginx 没有检测到上游关闭,因为它在同一台机器上。
您正在寻找的选项是: proxy_next_upstream和 proxy_connect_timeout。
尝试这个:
location / {
proxy_pass http://lb;
proxy_redirect off;
proxy_next_upstream error timeout invalid_header http_500;
proxy_connect_timeout 2;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Run Code Online (Sandbox Code Playgroud)