Nginx 中健康检查怎么配合状态监控页面实时查看集群节点存活率

秋雪吖_8591

秋雪吖_8591

2026-08-21

651人浏览

原创

nginx 无原生“节点存活率”,但可通过 nginx_upstream_check_module 主动健康检查(如 /health 接口+http_2xx 判断)+ check_status json 状态页,实时获取各节点 up/down 状态;再借助 curl/jq 或 prometheus 计算存活率。

nginx 中健康检查怎么配合状态监控页面实时查看集群节点存活率

Nginx 本身不自带“节点存活率”这个统计值,但可以通过健康检查模块 + 状态页暴露 + 简单计算,实时掌握各节点是否在线、多久没失败、当前是否被标记为 down,从而间接反映存活状态。关键不是算百分比,而是让运维一眼看清谁健康、谁异常、何时变的。

启用主动健康检查并绑定真实业务状态接口
被动靠 max_fails 触发下线太滞后,必须用主动探测。推荐使用 nginx_upstream_check_module(OpenResty 默认含,或需手动编译):

  • 在 upstream 块中配置探测逻辑,例如:
    upstream api_backend {
        server 10.0.1.10:8080;
        server 10.0.1.11:8080;
        check interval=5 rise=2 fall=3 timeout=1 type=http;
        check_http_send "GET /health HTTP/1.1\r\nHost: api.example.com\r\n\r\n";
        check_http_expect_alive http_2xx;
        default_down on;
    }
  • rise=2 和 fall=3 防抖动,避免网络瞬断误判;
  • check_http_expect_alive http_2xx 是重点:只认 2xx 为健康,拒绝把返回 {"status":"DOWN"} 或 503 Service Unavailable 的节点当活节点;
  • default_down on 表示启动时先标记为 down,等首次探测成功再上线,避免“假启动”。

配置可读的状态监控页面,直接显示每个节点实时状态
光有检查不行,得能看。用 check_status 指令暴露结构化数据:

location /status {
    check_status json;  # 输出 JSON,含 ip、port、status、rise/fall 计数、last_check_time 等
    allow 10.0.1.0/24;
    deny all;
}

访问 http://your-nginx/status 可得到类似:

{
  "servers": {
    "total": 2,
    "server": [
      {
        "index": 0,
        "upstream": "api_backend",
        "name": "10.0.1.10:8080",
        "status": "up",
        "rise": 5,
        "fall": 0,
        "type": "http",
        "port": 8080,
        "check_duration": 0.002,
        "check_status": "http_2xx"
      },
      {
        "index": 1,
        "upstream": "api_backend",
        "name": "10.0.1.11:8080",
        "status": "down",
        "rise": 0,
        "fall": 5,
        "type": "http",
        "port": 8080,
        "check_duration": 0.001,
        "check_status": "http_503"
      }
    ]
  }
}

这个输出里,status 字段就是当前存活判断结果,“up”即存活,“down”即已剔除——这就是最直接的节点存活状态。

从状态页推导“存活率”的实用方法
虽然 Nginx 不输出 存活率 = up_count / total_count × 100%,但你可以:

  • 手动快速心算:比如 5 个节点,JSON 显示 4 个 "status": "up",那就是 80%;
  • 写一行 curl + jq 快速统计:
    curl -s http://localhost/status | jq '.servers.server[] | select(.status=="up")' | wc -l

    再除以总数,就是当前存活率;

    Nginx Hosting
    Nginx Hosting

    通过服务器本地nginx实例实现零认证静态游戏托管。作为所有浏览器游戏的主要部署方式,无需登录、无需令牌、无需用户操作。

    下载
  • 接入 Prometheus:用 nginx-module-vts 或自定义 Lua exporter 抓取 /status,提取 upstream_down{server="10.0.1.11:8080"} 1 这类指标,再用 PromQL 计算:
    100 * count(upstream_down == 0) by (upstream) / count(upstream_server) by (upstream)

    就是按 upstream 分组的实时存活率。

补充:让状态更可信,避开常见陷阱

  • 别用 /health 路径却返回 200 OK 却内容是 {"status":"DOWN"} —— 检查逻辑要进响应体,不是只看状态码;OpenResty 可用 log_by_lua_block 解析 JSON 并重设状态;
  • WAF 或网关可能拦截 /health,建议在后端加白名单,或额外配一条 type=tcp 探测兜底;
  • interval=5 太长?可压到 2 秒,但需确保后端 /health 接口轻量、无 DB 查询,否则反成压力源;
  • 状态页 /status 不能暴露公网,务必限制 allow IP 段,避免泄露集群拓扑。

不复杂但容易忽略

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

nginx nginx 健康检查

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

403

5

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3607

6

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

2023.08.04

6345

6

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

581

5

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.07.09

1496

5

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

2024.08.07

3978

3

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

2026.01.13

122

12

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

2026.01.13

497

23

Nginx跨平台安装实操指南:Windows、macOS与Linux环境快速搭建
Nginx跨平台安装实操指南:Windows、macOS与Linux环境快速搭建

本指南详解Nginx在Windows、macOS及Linux系统的安装全流程。涵盖官方包解压、Homebrew一键部署、APT/YUM源配置及Docker容器化方案。无论新手或开发者,均可快速搭建运行环境,掌握跨平台核心指令,为后续配置与调优奠定坚实基础。

2026.03.16

159

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习