ngx_http_status_module
ngx_http_status_module模块
- 示例配置
- 指令
- 状态
- status_format
- status_zone
- 数据
- 兼容性
该ngx_http_status_module
模块提供对各种状态信息的访问。
该模块已被1.13.0中的ngx_http_api_module模块取代。此模块可作为我们商业订阅的一部分。
示例配置
http {
upstream backend {
zone http_backend 64k;
server backend1.example.com weight=5;
server backend2.example.com;
}
proxy_cache_path /data/nginx/cache_backend keys_zone=cache_backend:10m;
server {
server_name backend.example.com;
location / {
proxy_pass http://backend;
proxy_cache cache_backend;
health_check;
}
status_zone server_backend;
}
server {
listen 127.0.0.1;
location /upstream_conf {
upstream_conf;
}
location /status {
status;
}
location = /status.html {
}
}
}
stream {
upstream backend {
zone stream_backend 64k;
server backend1.example.com:12345 weight=5;
server backend2.example.com:12345;
}
server {
listen 127.0.0.1:12345;
proxy_pass backend;
status_zone server_backend;
health_check;
}
}
使用此配置的状态请求示例:
http://127.0.0.1/status
http://127.0.0.1/status/nginx_version
http://127.0.0.1/status/caches/cache_backend
http://127.0.0.1/status/upstreams
http://127.0.0.1/status/upstreams/backend
http://127.0.0.1/status/upstreams/backend/peers/1
http://127.0.0.1/status/upstreams/backend/peers/1/weight
http://127.0.0.1/status/stream
http://127.0.0.1/status/stream/upstreams
http://127.0.0.1/status/stream/upstreams/backend
http://127.0.0.1/status/stream/upstreams/backend/peers/1
http://127.0.0.1/status/stream/upstreams/backend/peers/1/weight
简单的监控页面随此分发提供,/status.html
在默认配置中以“ ”形式访问。它要求位置“ /status
”和“ /status.html
”按上图所示进行配置。
指令
句法: | 状态; |
---|---|
默认: | — |
语境: | 位置 |
状态信息将可以从周围的位置访问。访问这个位置应该是有限的。
句法: | status_format json; status_format jsonp回调; |
---|---|
默认: | status_format json; |
语境: | http,服务器,位置 |
默认情况下,状态信息以JSON格式输出。
或者,数据可以作为JSONP输出。该callback
参数指定回调函数的名称。该值可以包含变量。如果省略参数,或者计算的值是空字符串,则使用“ ngx_status_jsonp_callback
”。
句法: | status_zone区域; |
---|---|
默认: | — |
语境: | 服务器 |
启用指定的虚拟http或流(1.7.11)服务器状态信息的收集zone
。多台服务器可能共享同一个区域。
数据
提供以下状态信息:
version
提供的数据集的版本。目前的版本是8. nginx_version
版本的nginx。nginx_build
nginx构建的名称。address
接受状态请求的服务器的地址。generation
配置重新加载的总数。load_timestamp
上次重新加载配置的时间,以Epoch以来的毫秒数表示。timestamp
Epoch以来的当前时间(以毫秒为单位)。pid
处理状态请求的工作进程的ID。ppid
启动辅助进程的主进程的标识。processesrespawned
异常终止和重新生成的子进程的总数。connectionsaccepted
接受的客户端连接的总数。dropped
丢弃的客户端连接总数。active
当前活动的客户端连接数。idle
当前闲置的客户端连接数。sslhandshakes
成功的SSL握手总数。handshakes_failed
失败的SSL握手总数。session_reuses
SSL握手期间会话重用的总次数。requeststotal
客户端请求的总数。current
当前的客户端请求数。server_zones
对于每个status_zone
:processing
当前正在处理的客户端请求的数量。requests
客户端收到的客户端请求总数。responsestotal
发送给客户的回复总数。1xx
,2xx
,3xx
,4xx
,5xx
响应状态码数1XX,2XX,3XX,4XX,5XX和。discarded
没有发送回应完成的请求总数。received
从客户端收到的总字节数。sent
发送给客户端的总字节数。slabs
对于使用slab分配器的每个共享内存区域:pagesused
当前使用的内存页数。free
当前的可用内存页数。slots
对于每个内存插槽大小(8,16,32,64,128等),提供以下数据:used
当前使用的内存插槽数量。free
当前的可用内存插槽数量。reqs
尝试分配指定大小的内存的总次数。fails
尝试分配指定大小的内存失败的次数。upstreams
对于每个动态可配置组,提供以下数据:peers
对于每个服务器,提供以下数据:id
服务器的ID。server
服务器的地址。name
服务器指令中指定的服务器的名称。service
服务器指令的服务参数值。backup
指示服务器是否为备份服务器的布尔值。weight
服务器的重量。state
当前状态,可能是“ up
”,“ draining
”,“ down
”,“ unavail
”,“ checking
”或“ unhealthy
”之一。active
当前活动连接的数量。max_conns
服务器的max_conns
限制。requests
转发到此服务器的客户端请求总数。responsestotal
从此服务器获得的响应总数。1xx
,2xx
,3xx
,4xx
,5xx
状态代码为1xx
,2xx
,3xx
,4xx
和5xx
的响应数量。sent
发送到此服务器的总字节数。received
从此服务器收到的总字节数。fails
尝试与服务器通信失败的总次数。由于达到max_fails
阈值的失败尝试unavail
次数,服务器无法用于客户端请求(状态“ unavail
”)的次数。health_checkschecks
健康检查请求的总数。fails
健康检查失败的次数。unhealthy
服务器变得不健康多少次(状态“ unhealthy
”)。last_passed
布尔值,指示最后的运行状况检查请求是否成功并通过了测试。downtime
服务器在“ unavail
”,“ checking
”和“unhealthy
“ 状态。downstart
服务器变为“ unavail
”,“ checking
”或“ unhealthy
” 的时间(自Epoch以来以毫秒为单位)。selected
上一次选择服务器处理请求(1.7.5)时的时间(从Epoch开始,以毫秒为单位)。header_time
从服务器获取响应标头的平均时间(1.7.10)。在版本1.11.6之前,该字段仅在使用least_time负载平衡方法时可用。response_time
从服务器获得完整响应的平均时间(1.7.10)。在版本1.11.6之前,该字段仅在使用least_time负载平衡方法时可用。keepalive
当前空闲保持连接的数量。zombies
当前从组中删除的服务器数量,但仍处理活动的客户端请求。zone
保持组的配置和运行时状态的共享内存区域的名称。queue
对于请求队列,提供以下数据:size
队列中当前的请求数。max_size
同时可以在队列中请求的最大数量。overflows
由于队列溢出而被拒绝的请求总数。caches
对于每个缓存(由proxy_cache_path等配置):size
缓存的当前大小。max_size
配置中指定的缓存的最大大小限制。cold
指示“缓存加载器”进程是否仍在将数据从磁盘加载到缓存中的布尔值。hit
,stale
,updating
,revalidatedresponses
从缓存中读取的响应的总数(命中或由于proxy_cache_use_stale
等引起的陈旧响应)。bytes
从缓存中读取的总字节数。miss
,expired
,bypassresponses
的响应的总数不从缓存(未命中,期满,或绕过由于proxy_cache_bypass和喜欢)。bytes
从代理服务器读取的总字节数。responses_written
写入缓存的响应总数。bytes_written
写入缓存的总字节数。streamserver_zones
对于每个status_zone
:processing
当前正在处理的客户端连接数。connections
客户端接受的连接总数。sessionstotal
完成的客户端会话总数。2xx
,4xx
,5xx
用状态代码2xx
,4xx
或5xx
完成的会话数量。discarded
完成连接的总数而不创建会话。received
从客户端收到的总字节数。sent
发送给客户端的总字节数。upstreams
对于每个动态可配置组,提供以下数据:peers
为每个服务器提供以下数据:服务器的id
ID。server
服务器的地址。name
服务器指令中指定的服务器的名称。service
服务器指令的服务参数值。backup
指示服务器是否为备份服务器的布尔值。weight
服务器的重量。state
当前状态,可能是“ up
”,“ down
”,“unavail
“,” checking
“或” unhealthy
“。active
当前的连接数。max_conns
服务器的max_conns
限制。connections
转发到此服务器的客户端连接总数。connect_time
连接到上游服务器的平均时间。在版本1.11.6之前,该字段仅在使用least_time负载平衡方法时可用。first_byte_time
接收第一个字节数据的平均时间。在版本1.11.6之前,该字段仅在使用least_time负载平衡方法时可用。response_time
接收最后一个字节数据的平均时间。在版本1.11.6之前,该字段仅在使用least_time负载平衡方法时可用。sent
发送到此服务器的总字节数。received
从此服务器收到的总字节数。fails
尝试与服务器通信失败的总次数。由于达到max_fails
阈值的失败尝试unavail
次数,服务器无法用于客户端连接(状态“ unavail
”)多少次。health_checkschecks
健康检查请求的总数。fails
健康检查失败的次数。unhealthy
服务器变得不健康多少次(状态“ unhealthy
”)。last_passed
布尔值,指示最后的运行状况检查请求是否成功并通过了测试。downtime
服务器处于“ unavail
”,“ checking
”和“ unhealthy
”状态的总时间。downstart
当服务器成为“ unavail
”,“ checking
”或“”时,时间(从Epoch开始以毫秒为单位)unhealthy
”。selected
上次选择服务器处理连接时的时间(自Epoch起,以毫秒为单位)。zombies
当前从组中删除的服务器数量,但仍处理活动客户端连接。zone
保持组的配置和运行时状态的共享内存区域的名称。
兼容性
- 版本8中添加了http和stream上游中的区域字段。
- 版本8中添加了板坯状态数据。
- 版本8中添加了状态的检查。
- 在版本8中添加了http和stream上游中的名称和服务字段。
- 版本8中添加了nginx_build和ppid字段。
- 在版本7中添加了会话状态数据和流server_zones中的丢弃字段。
- zombies字段已从版本6中的nginx调试版本中移出。
- ssl状态数据是在版本6中添加的。
- 在版本6中添加了server_zones中的丢弃字段。
- 在版本6中添加了队列状态数据。
- 在版本6中添加了pid字段。
- 在版本6中上游的服务器列表被移入同行。
- 版本5中移除了上游服务器的Keepalive字段。
- 在版本5中添加了流状态数据。
- 在版本5中添加了生成字段。
- 版本5中增加了进程中重新生成的字段。
- 在版本5中添加了上游中的header_time和response_time字段。
- 在版本4中添加了上游中的选定字段。
- 在版本4中增加了上游的排水状态。
- 在版本3中添加了上游中的id和max_conns字段。
- 在版本3中添加了
revalidated
缓存中的字段。
- 在版本2中添加了server_zones,caches和load_timestamp状态数据。