Active connections 是并发连接数,指当前所有活跃TCP连接总数,包括Reading、Writing和Waiting三种状态,反映Nginx维持的连接数而非瞬时并发请求数。

Active connections 表示当前所有处于活跃状态的 TCP 连接总数,包括三种子状态:正在读取请求头(Reading)、正在发送响应(Writing)、以及保持长连接但暂无数据收发、等待新请求的空闲连接(Waiting)。它反映的是此刻 Nginx 与客户端维持的连接数量,不是并发请求数,而是并发连接数。
Accepts 与 Handled 的区别和实际意义
这两个是自 Nginx 启动以来的累计计数器:
-
Accepts:Nginx 成功调用
accept()系统调用的次数,即成功接受的新 TCP 连接总数;每次建立一个新连接就加 1。 -
Handled:成功完成处理并正常关闭(或超时断开)的连接总数。它通常等于 Accepts,但如果出现资源不足(如达到
worker_connections上限)、连接被拒绝或 worker 异常退出等情况,Handled 就会小于 Accepts。
当 Handled 时,往往提示连接处理能力已达瓶颈,需检查 <code>worker_connections 配置、系统文件描述符限制或 upstream 响应延迟等问题。
Reading 是什么,为什么它不等于活跃连接数
Reading 是当前瞬间处于“读取客户端请求头”阶段的连接数量。它只是 Active connections 的一部分,仅覆盖那些刚建立连接、正接收 HTTP 请求行和头部的连接。
- 一个连接完成 Reading 后,会进入 Writing(发响应)或 Waiting(keepalive 空闲)状态;
- 如果客户端发送的是大上传体(如文件),Nginx 默认不会计入 Reading,而可能归入 Writing 或其他状态(取决于配置和模块);
- Reading 数值长期偏高,可能说明请求头解析慢、客户端网络差、或存在慢速攻击(如 Slowloris)。
附:常见输出行对照说明
例如返回:
Active connections: 291server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
其中:
– Active = 6 + 179 + 106 = 291,吻合;
– Accepts = 16,630,948,Handled = 16,630,948(说明无连接被丢弃);
– Requests = 31,070,465,远大于 Handled,印证了 keepalive 复用(平均每个连接承载约 1.87 个请求)。

















