如何使用 nginx 管理反向代理列表中的宕机服务器?

如何使用 nginx 管理反向代理列表中的宕机服务器?

我正在尝试 nginx 负载平衡功能。

现在配置如下所示:

...
upstream myapp1 {
    server 127.0.0.1:4000;
    server 127.0.0.1:4001;
    server 127.0.0.1:4002;
    server 127.0.0.1:4003;
   }
...

server {
    listen       80;
    server_name  mydomain.local;

    location / {
        proxy_pass   http://myapp1;
    }

现在,当我想要升级任何实例时,我必须停止它,更新代码,然后重新启动。

那么,当服务器出现故障时,如何让 nginx 在其平衡例程中不使用它?

答案1

一旦升级服务器,请编辑 nginx 配置并在特定服务器的块中的行down中添加关键字。serverupstream

然后发出命令service nginx reload,或针对您的发行版的类似命令,使 nginx 重新读取其配置。现在 nginx 将不再使用该上游服务器,因此您可以升级并重新启动服务而不会对用户产生任何影响。

之后,您可以删除down关键字,然后重新加载 nginx 配置。

相关内容