我在不同的大陆(美洲和欧洲)有2个不同的上游
我希望每个服务器始终将流量发送到同一台服务器,但是如果停机,我需要在每台服务器上指定2台服务器-流量应该发送到备用服务器。
问题在于没有执行此操作的策略。我在首选服务器上进行了weight = 1000000000的变通方法,但是我觉得这不是正确的方法。
upstream US_UPSTREAM {
ip_hash;
server 2.2.2.2 weight=100000000 max_fails=10 fail_timeout=3600s;
server 1.1.1.1 #should only be used as backup, not round robin or any other strategy
}
upstream EU_UPSTREAM {
ip_hash;
server 1.1.1.1 weight=100000000 max_fails=10 fail_timeout=3600s;
server 2.2.2.2 #should only be used as backup, not round robin or any other strategy
}
答案 0 :(得分:0)
好吧,终于找到了解决方法。
仅备份无效。如果第一台服务器处于脱机状态,我会从中获得502。使之起作用的关键是在第二台服务器上添加备份,并在位置上设置错误:
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_pass http://$preferred_upstream$request_uri;
*proxy_next_upstream error http_502;*
}
上游
upstream eu_upstream {
ip_hash;
server 1.1.1.1 max_fails=5 fail_timeout=3600s;
server 2.2.2.2 *backup*;
}