Nginx stub_status模块提供轻量级实时连接状态统计,需编译时启用并配置location限制访问,返回Active connections、accepts/handled/requests及Reading/Writing/Waiting三类指标。

Nginx 的 stub_status 模块提供轻量级的实时连接状态统计,无需额外依赖,适合快速查看服务健康度和并发压力。
启用 stub_status 模块的前提
该模块默认编译进大多数官方预编译包(如 nginx.org 官方源或主流 Linux 发行版仓库中的包),但需确认已启用:
- 运行
nginx -V 2>&1 | grep -o with-http_stub_status_module,若输出匹配则表示已支持 - 若未启用,需重新编译 Nginx 并添加
--with-http_stub_status_module参数 - 注意:该模块不支持动态加载,必须在编译时包含
配置 location 暴露监控端点
在任一 server 块中添加如下配置(推荐限制访问权限):
location /nginx-status {
stub_status on;
access_log off;
allow 127.0.0.1; # 仅允许本地访问
allow 10.0.0.0/8; # 或指定内网段
deny all; # 拒绝其他所有地址
}
重启 Nginx 后,可通过 curl http://localhost/nginx-status 获取原始数据。
理解返回的三行指标含义
访问成功后返回类似以下内容:
Active connections: 12 server accepts handled requests 12345 12345 67890 Reading: 0 Writing: 3 Waiting: 9
- Active connections:当前活跃连接数(包括 keepalive 空闲连接)
- accepts:Nginx 接收的总 TCP 连接数
- handled:成功处理的连接数(通常与 accepts 相等,除非达到 limit_conn 或资源耗尽)
- requests:客户端发起的 HTTP 请求数(含重用连接上的多个请求)
- Reading:Nginx 正在读取请求头的连接数
- Writing:Nginx 正在向客户端发送响应的连接数
- Waiting:处于 keepalive 状态、等待新请求的空闲连接数
安全与集成建议
为避免敏感信息泄露或被滥用,务必注意:
- 禁止开放到公网,始终配合
allow/deny或防火墙策略限制访问来源 - 可配合 Prometheus 使用 nginx-lua-prometheus 实现更丰富的指标暴露(stub_status 本身不支持 JSON 或 metrics 格式)
- 若使用反向代理,确保上游不透传 /nginx-status 请求,防止越权访问
- 该接口无认证机制,切勿在未授权环境中启用










