Nginx上游主动被动

时间:2015-05-05 17:40:09

标签: nginx

我的nginx配置中有3台服务器的上游。 我需要设置此配置才能优先... 如果我的server1已启动,则所有连接都会转到他身上。 如果我的server1关闭,则所有连接都转到服务器2 如果我的服务器2关闭,则所有连接都转到服务器3。

这可能吗?

我已经设置了ip_hash指令,并将指令备份设置为我的server2和我上游的3。 但这似乎不起作用。 你有什么建议吗?

是否可能添加一个条件,在我的server1中是404错误按顺序转到下一个服务器? 谢谢

这是我的nginx配置..但是当IP 192.168.10.1 nginx以循环模式进入192.168.10.2和192.168.10.3时,这对我的邮件网络服务器不利

upstream mail {
        #ip_hash;
        server 192.168.10.1:80;
        server 192.168.10.2:80 backup;
        server 192.168.10.3:80 backup;
        #health_check;
    }




server {
    listen       443 ssl;
    server_name  mail.test.com;
    location / {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header        X-Forwarded-Proto $scheme;
        add_header  Front-End-Https   on;
        proxy_pass http://mail;
    }
}

2 个答案:

答案 0 :(得分:2)

是的,您可能需要2个上游部分和1个额外的服务器部分,例如:

upstream backend {
    server server1.net;
    server 127.0.0.1:8010 backup;
}

upstream fallback {
    server server2.net;
    server server3.net backup;
}

server {
    listen 127.0.0.1:8010;
    location / {
        proxy_pass http://fallback;
        proxy_next_upstream invalid_header http_500 http_502 http_504 http_403;
    }
}

我希望这个解决方案可以帮到你。

答案 1 :(得分:-1)

您可以使用" backup"将服务器标记为备份。设置上游时的指令。当所有正常上游服务器停止响应请求时,将使用这些服务器。

upstream backend {
      server 1.0.1.1;
      server 1.0.1.2 backup;
      server 1.0.1.3 backup;
}