【发布时间】:2014-08-20 07:36:16
【问题描述】:
我很难找到 nginx proxy_pass 故障转移设置的解决方案。
我需要将某些位置代理到后端服务器的 URL -
location /Data {
proxy_pass https://backend1.example.com/site1-url;
proxy_set_header X_HOST $host;
}
location /Photos {
proxy_pass https://backend1.example.com/site2-url;
proxy_set_header X_HOST $host;
}
它按预期工作,但我需要 nginx 故障转移到另一台服务器。所以显而易见的是使用上游:
upstream servers {
server backend1.example.com;
server backend2.example.com backup;
{
location /Data {
proxy_pass https://servers/site1-url;
proxy_set_header X_HOST $host;
}
location /Photos {
proxy_pass https://servers/site2-url;
proxy_set_header X_HOST $host;
}
...,但这不起作用。 Nginx 不理解 proxy_pass 包含上游。
有没有优雅的方法来做到这一点?
【问题讨论】:
-
尝试在服务器声明中添加端口号:
server backend1.example.com:443。默认为 80。此外,upstream必须在server块之外 -
您认为故障转移是什么?查看 proxy_next_upstream 的详细信息,了解我的意思。