该版本为商业版本。
示例配置
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”会输出简单的监控页面。需要将location“/status”和“/status.html”按如上方法配置。
status
语法:status
默认:—
上下文:location
从location访问状态信息。访问这个location应该有限制。
status_format
语法:status_format json
status_format jsonp [callback]
默认:status_format json
上下文:http, server, location
默认情况下,状态信息输出为JSON格式。
数据也可以输出为jsonp格式。callback参数指定了回调函数名。值可以包含变量。如果参数省略或是一个空字符串,会使用“ngx_status_jsonp_callback”。
status_zone
语法:status_zone zone
默认:—
上下文:server
启用收集在指定区域虚拟http或stream(1.7.11+)服务器状态信息。多个服务器可以共享相同的区域。
数据
提供下面的状态信息:
version
提供数据集的版本当前版本是6.
nginx_version
nginx版本。
address
接收状态请求的服务器地址。
generation
配置重新加载的总次数。
load_timestamp
最后一次重新加载配置文件的时间,从纪元开始的毫秒数。
timestamp
当前时间从纪元开始的毫秒数。
pid
处理状态请求的工作进程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
  发送到客户端的总字节数。
upstreams
  peers
  对每一个server,提供下面的数据:
    id
    服务器ID
    server
    服务器地址
    backup
    一个布尔值,表示服务器是否是备份服务器。
    weight
    服务器权重
    state
    当前状态,可能是“up”, “draining”, “down”, “unavail”或“unhealthy”
    active
    当前活动的连接数。
    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
      多少次服务器变成不健康状态。
      last_passed
      布尔值,表示最后一次健康检查请求是否成功且通过测试。
    downtime
    服务器在“unavail”和“unhealthy”状态的总时间。
    downstart
    服务器变为“unavail”或“unhealthy”状态的时间(从纪元开始的毫秒数)
    selected
    服务器最后一次被选中处理请求的时间(从纪元开始的毫秒数)
    header_time
    从服务器获取响应头的平均时间(1.7.10+)。当使用least_time方式的负载均衡时,该字段可用。
    response_time
    从服务器获取完整响应的平均时间(1.7.10+)。当使用least_time方式的负载均衡时,该字段可用。
  keepalive
  当前空闲的keepalive连接数。
  queue
  对于请求queue,提供下面的数据:
    size
    当前队列中的请求数。
    max_size
    同一时间队列中的最大请求数。
    overflows
    由于队列溢出拒绝的请求总数。
caches
  size
  当前缓存大小。
  max_size
  配置文件中指定的缓存大小最大限制。
  cold
  一个布尔值,表示“cache loader”进程是否仍在从磁盘加载数据到缓存。
  hit, stale, updating, revalidated
    responses
    从缓存读取响应的总数。
    bytes
    从缓存读取的总字节数。
  miss, expired, bypass
    responses
    没有从缓存取的响应总数。
    bytes
    从被代理服务器读取的字节总数。
    responses_written
    写入到缓存的响应总数。
    bytes_written
    写入到缓存的总字节数。
stream
  server_zones
    processing
    当前处理的客户端连接数。
    connections
    从客户端接受的连接总数。
    received
    从客户端收到的字节总数。
    sent
    发送到客户端的字节总数。
  upstreams
    peers
      id
      服务器ID
      server
      服务器地址
      backup
      一个布尔值,表示服务器是否是备份服务器。
      weight
      服务器权重
      state
      当前状态,可能是“up”, “draining”, “down”, “unavail”或“unhealthy”
      active
      当前活动的连接数。
      connections
      转发到本服务器的客户端连接总数。
      connect_time
      连接上游服务器的平均时间。当使用least_time方式的负载均衡时,该字段可用。
      first_byte_time
      收到数据首字节平均时间。当使用least_time方式的负载均衡时,该字段可用。
      response_time
      收到数据最后一个字节平均时间。当使用least_time方式的负载均衡时,该字段可用。
      sent
      发送到该服务器的总字节数。
      received
      从服务器接收到的总字节数。
      fails
      与该服务器通信的不成功尝试总数。
      unavail
      多少次服务器变成不可用状态(“unavail”状态),这是由于不成功的尝试次数达到了max_fails阈值。
      health_checks
        checks
        健康检查请求总数。
        fails
        失败的健康检查数。
        unhealthy
        多少次服务器变成不健康状态。
        last_passed
        布尔值,表示最后一次健康检查请求是否成功且通过测试。
      downtime
      服务器在“unavail”和“unhealthy”状态的总时间。
      downstart
      服务器变为“unavail”或“unhealthy”状态的时间(从纪元开始的毫秒数)
      selected
      服务器最后一次被选中处理请求的时间(从纪元开始的毫秒数)
兼容性
- ssl状态在版本6中添加。
 - server_zones中的discarded字段在版本6中添加
 - queue状态数据在版本6中添加。
 - pid字段在版本6中添加。
 - upstreams中的服务器列表在版本6中移动到peers中。
 - 上游服务器的keepalive字段在版本5中移除。
 - stream状态数据在版本5中添加。
 - generation字段在版本5中添加。
 - processes中的respawned字段在版本5中添加。
 - upstreams中的header_time和response_time字段在版本5中添加。
 - upstreams中的selected字段在版本4中添加。
 - upstreams中的draining状态在版本4中添加。
 - upstreams中的id和max_conns字段在版本3中添加。
 - caches中的revalidated字段在版本3中添加。
 - server_zones, caches和load_timestamp状态数据在版本2中添加。