首页 > 解决方案 > NginX 服务器关闭时会发生什么?

问题描述

想象一下,我们有一个运行在三个不同服务器上的 Web 应用程序。我们有一个 NginX 服务器,它有一个负载均衡器并将请求重定向到这三个服务器。
那么当 NginX 服务器不再运行时,请求会发生什么?他们是否重定向到其中一台服务器?如果不是,我们如何将它们重定向到其中一台服务器?

标签: nginxwebredirectload-balancing

解决方案


如果其中一个负载平衡实例关闭,请求仍将路由到该服务器,因为 nginx 无法知道上游实例失败。您将获得502 Bad Gateway三分之一的请求。

为避免关闭服务器收到请求,您可以使用 nginx 的健康检查

NGINX 和 NGINX Plus 可以持续测试您的上游服务器,避免出现故障的服务器,并将恢复的服务器优雅地添加到负载均衡组中。

在您的应用程序中,如果实例正常,您可以有一个/health_check以 200 状态代码响应的路径并使用此配置。

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }
    server {
        location / {
            proxy_pass http://backend;
            health_check uri=/health_check;
        }
    }
}

推荐阅读