当前实时活跃连接数需通过 stub_status 模块获取,即 curl 请求 /nginx-status 接口返回的 “active connections” 值,为 reading + writing + waiting 三类状态之和,反映 http 层已建立未关闭的 tcp 连接总数。

要查看 Nginx 当前实时活跃连接数,不能直接通过 worker_connections 配置项获取——它只是每个 worker 进程允许的最大并发连接上限(在 nginx.conf 的 events 块中配置),是一个静态限制值,不是运行时指标。
查看当前实时活跃连接数的方法
实际活跃连接数需通过 Nginx 内置的 stub_status 模块(需编译启用,默认通常已包含)来获取。步骤如下:
-
确认 stub_status 已启用:执行
nginx -V 2>&1 | grep -o with-http_stub_status_module,有输出说明支持 -
在 server 块中配置 status 接口(例如只允许本地访问):
location /nginx-status {
stub_status on;
allow 127.0.0.1;
deny all;
} -
重载 Nginx:
nginx -s reload -
请求状态页:
curl http://127.0.0.1/nginx-status,返回类似: Active connections: 12
server accepts handled requests
15248 15248 28456
Reading: 0 Writing: 4 Waiting: 8
其中 Active connections 就是当前所有 worker 进程的总活跃连接数(即已建立、尚未关闭的 TCP 连接数),包括 Reading、Writing、Waiting 三类状态之和(本例 0 + 4 + 8 = 12)。
补充说明
该数值反映的是 HTTP 层的活跃连接,不含健康检查、keepalive 空闲连接(它们属于 Waiting 状态,仍计入 Active);若启用了 keepalive_timeout,长连接会持续计入直到超时或主动关闭。
其他辅助方式
-
通过系统层面估算:运行
ss -tn state established '( sport = :80 or sport = :443 )' | wc -l(适用于监听在 80/443 的主服务),但可能包含非 Nginx 连接,且无法区分 worker 分布 - 配合 Prometheus + nginx-vts-exporter:适合生产环境长期监控,可按 worker、server zone 维度拆分连接数
不复杂但容易忽略:Active connections 是瞬时值,建议结合监控工具定期采集,而非仅依赖单次 curl。











