商城首页欢迎来到中国正版软件门户

您的位置:首页 >如何在Nginx中配置健康检查

如何在Nginx中配置健康检查

  发布于2026-04-21 阅读(0)

扫一扫,手机访问

在Nginx中配置健康检查

想让你的Nginx负载均衡更可靠吗?一个关键动作就是为后端服务器配置健康检查。这能确保流量只被分发到状态正常的实例上,从而大幅提升服务的整体可用性。通常,实现这一功能有两种主流路径:一是使用功能更全面的商业版Nginx Plus,二是为开源版Nginx集成第三方模块。

如何在Nginx中配置健康检查

使用Nginx Plus

如果你手头有Nginx Plus,事情就简单多了。因为它内置了开箱即用的健康检查功能,直接在upstream配置块里就能启用。

首先,你需要定义一个上游服务器组,并把健康检查开关打开:

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
        # 启用健康检查
        health_check;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://backend;
        }
    }
}

当然,默认配置可能不够用。这时候,你可以进一步定制检查参数,比如调整探测间隔、成功/失败阈值以及超时时间,让检查行为更贴合你的业务节奏。

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
        health_check interval=3s falls=3 rises=2 timeout=1s type=http;
        # 指定健康检查的请求路径
        health_check_path /health;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://backend;
        }
    }
}

使用ngx_http_upstream_check_module

对于大多数使用开源版Nginx的用户来说,ngx_http_upstream_check_module这个第三方模块是实现健康检查的经典选择。不过,这需要你手动编译安装。

第一步,下载Nginx源码并带上这个模块一起编译:

wget http://nginx.org/download/nginx-1.21.6.tar.gz
tar -zxvf nginx-1.21.6.tar.gz
cd nginx-1.21.6
./configure --with-http_upstream_check_module
make
sudo make install

模块安装好后,配置逻辑和Nginx Plus类似。在upstream块中,使用check指令来定义检查策略,并指定检查请求和期望的响应状态。

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
        check interval=3000 rise=2 fall=5 timeout=1000 type=http;
        check_http_send "HEAD /health HTTP/1.0\r\n\r\n";
        check_http_expect_alive http_2xx http_3xx;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://backend;
        }
    }
}

配置完成后,别忘了让Nginx重新加载配置,使改动生效:

sudo nginx -s reload

无论选择哪种方案,完成以上步骤后,你的Nginx就具备了自动甄别后端服务器健康状态的能力。这样一来,系统就能自动屏蔽故障节点,确保流量始终由健康的实例处理,服务的韧性自然就上了一个台阶。

本文转载于:https://www.yisu.com/ask/67044774.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注