【发布时间】:2017-10-16 01:13:58
【问题描述】:
我有一个 NGINX 代理,后面有 4 个上游服务器,2 个本地服务器,2 个远程服务器,这是为了保持最大的容错能力。 现在我可以让它按照这样的顺序尝试每个服务器
upstream backend {
server server1;
server 127.0.0.1:8081 backup;
}
upstream fallback1 {
server server2;
server 127.0.0.1:8082 backup;
}
upstream fallback2 {
server server3;
server server4 backup;
}
server {
listen 127.0.0.1:80;
location / {
proxy_pass http://backend;
proxy_next_upstream invalid_header http_500 http_502 http_504 http_403;
}
}
server {
listen 127.0.0.1:8081;
location / {
proxy_pass http://fallback1;
proxy_next_upstream invalid_header http_500 http_502 http_504 http_403;
}
}
server {
listen 127.0.0.1:8082;
location / {
proxy_pass http://fallback2;
proxy_next_upstream invalid_header http_500 http_502 http_504 http_403;
}
}
有没有更好的方法来实现这一点?至于到达远程服务器,我第三次循环回服务器,感觉不对。
如果本地服务器有数据,我希望 nginx 避免使用远程服务器,因为这会产生成本。
如果服务器有响应,我也不介意 100% 的请求是否发送到一台服务器。
提前感谢您的帮助!
【问题讨论】:
标签: nginx proxy backup fallback