模块 ngx_http_status_module

Example Configuration
Directives
     status
     status_format
     status_zone
Data
Compatibility

ngx_http_status_module模块提供对各种状态信息的访问。

该模块作为我们的商业订阅的 一部分提供, 直至 2010 年 13 月 13 日。它在 1.13.3 中被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;
默认:
语境: location

可以从周围位置访问状态信息。对该位置的访问应受到 限制

句法: status_format json;
status_format jsonp [callback];
默认:
status_format json;
语境: http, server,location

默认情况下,状态信息以JSON格式输出。

或者,数据可以输出为 JSONP。该callback参数指定回调函数的名称。参数值可以包含变量。如果省略参数,或者计算出的值为空字符串,则ngx_status_jsonp_callback使用“ ”。

句法: status_zone zone;
默认:
语境: server

允许收集指定 中的 虚拟 httpzone(1.7.11) 服务器状态信息。多个服务器可能共享同一个区域。

数据

提供以下状态信息:

version
所提供数据集的版本。当前版本是8。
nginx_version
nginx 的版本。
nginx_build
nginx 构建的名称。
address
接受状态请求的服务器的地址。
generation
配置重新 加载的总数 。
load_timestamp
上次重新加载配置的时间(自纪元以来的毫秒数)。
timestamp
自纪元以来的当前时间(以毫秒为单位)。
pid
处理状态请求的工作进程的 ID。
ppid
启动工作进程的 主进程的 ID 。
processes
respawned
异常终止和重生的子进程总数。
connections
accepted
接受的客户端连接总数。
dropped
断开的客户端连接总数。
active
当前活动客户端连接数。
idle
当前空闲客户端连接数。
ssl
handshakes
成功的 SSL 握手总数。
handshakes_failed
SSL 握手失败的总数。
session_reuses
SSL 握手期间会话​​重用的总数。
requests
total
客户端请求总数。
current
当前客户端请求的数量。
server_zones
对于每个status_zone
processing
当前正在处理的客户端请求数。
requests
从客户端收到的客户端请求总数。
responses
total
发送给客户端的响应总数。
1xx, 2xx, 3xx, 4xx, 5xx
状态代码为 1xx、2xx、3xx、4xx 和 5xx 的响应数。
discarded
已完成但未发送响应的请求总数。
received
从客户端接收的总字节数。
sent
发送到客户端的总字节数。
slabs
对于每个使用slab分配器的共享内存区域:
pages
used
当前已使用的内存页数。
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
转发到此服务器的客户端请求总数。
responses
total
从该服务器获得的响应总数。
1xx, 2xx, 3xx, 4xx, 5xx
状态代码为 1xx、2xx、3xx、4xx 和 5xx 的响应数。
sent
发送到该服务器的总字节数。
received
从该服务器接收的总字节数。
fails
尝试与服务器通信失败的总数。
unavail
unavail由于不成功尝试次数达到 max_fails阈值而导致 服务器无法处理客户端请求(状态“ ”)的次数 。
health_checks
checks
发出的健康检查请求 总数 。
fails
健康检查失败的数量。
unhealthy
服务器变得不健康的次数(状态“ unhealthy”)。
last_passed
指示上次运行状况检查请求是否成功并通过 测试的布尔值。
downtime
服务器处于“ unavail”、“ checking”和“ unhealthy”状态的总时间。
downstart
服务器变为“ unavail”、“ checking”或“ unhealthy”的时间(自纪元以来的毫秒数)。
selected
上次选择服务器处理请求的时间(自纪元以来的毫秒数)(1.7.5)。
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, revalidated
responses
从缓存读取的响应总数(命中或由于proxy_cache_use_stale 等原因导致的过时响应)。
bytes
从缓存中读取的总字节数。
miss, expired, bypass
responses
未从缓存中获取的响应总数(由于 proxy_cache_bypass 等原因导致未命中、过期或绕过)。
bytes
从代理服务器读取的总字节数。
responses_written
写入缓存的响应总数。
bytes_written
写入缓存的总字节数。
stream
server_zones
对于每个status_zone
processing
当前正在处理的客户端连接数。
connections
从客户端接受的连接总数。
sessions
total
已完成的客户端会话总数。
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
尝试与服务器通信失败的总数。
unavail
unavail由于不成功尝试次数达到 max_fails阈值而导致 服务器无法用于客户端连接(状态“ ”)的次数 。
health_checks
checks
发出的健康检查请求 总数 。
fails
健康检查失败的数量。
unhealthy
服务器变得不健康的次数(状态“ unhealthy”)。
last_passed
指示上次运行状况检查请求是否成功并通过 测试的布尔值。
downtime
服务器处于“ unavail”、“ checking”和“ unhealthy”状态的总时间。
downstart
服务器变为“ unavail”、“ checking”或“ unhealthy”的时间(自纪元以来的毫秒数)。
selected
上次选择服务器处理连接的时间(自纪元以来的毫秒数)。
zombies
当前从组中删除但仍在处理活动客户端连接的服务器数量。
zone
保存组配置和运行时状态的 共享内存区域 的名称 。

兼容性