当没有上游在线时,是否可以让nginx停止侦听端口?

时间:2014-11-18 09:08:55

标签: nginx

我有一个分配了多个IP地址的域,这样如果其中一个服务器处于脱机状态,客户端就会自动检查另一个服务器。 Nginx的配置类似于:

server {
    listen 80;

    location / {
        proxy_pass http://backend;
    }
}

upstream backend {
    server localhost:1234;
}

然而,当1234的服务失败时,nginx开始返回错误502(这是预期的),并且客户端不会尝试下一个IP。但是,如果我完全停止在失败的实例上的nginx - 例如开始监听80,客户端连接到另一个工作服务器。

如果上游离线,有没有办法配置nginx拒绝与服务器端口的连接?

1 个答案:

答案 0 :(得分:0)

为什么不使用后备位置?

将此添加到您的位置(更改)

try_files $uri @my_fallback;


location @my_fallback {
    proxy_pass http://example.com:12345; #other url here
}