模块 ngx_http_api_module
该ngx_http_api_module模块 (1.13.3) 提供 REST API,用于访问各种状态信息、动态配置上游服务器组以及管理
键值对,
而无需重新配置 nginx。
该模块取代了 ngx_http_status_module和 ngx_http_upstream_conf_module 模块。
使用PATCH或POST方法时,请确保负载不超过
读取客户端请求体的
缓冲区大小,否则可能会返回413(请求实体太大)错误。
该模块作为我们商业订阅 的一部分提供 。
配置示例
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;
}
keyval_zone zone=one:32k state=one.keyval;
keyval $arg_text $text zone=one;
server {
listen 127.0.0.1;
location /api {
api write=on;
allow 127.0.0.1;
deny all;
}
}
}
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;
}
}
所有 API 请求都在 URI 中 包含受支持的 API版本。使用此配置的 API 请求示例:
http://127.0.0.1/api/9/ http://127.0.0.1/api/9/nginx http://127.0.0.1/api/9/connections http://127.0.0.1/api/9/workers http://127.0.0.1/api/9/http/requests http://127.0.0.1/api/9/http/server_zones/server_backend http://127.0.0.1/api/9/http/caches/cache_backend http://127.0.0.1/api/9/http/upstreams/backend http://127.0.0.1/api/9/http/upstreams/backend/servers/ http://127.0.0.1/api/9/http/upstreams/backend/servers/1 http://127.0.0.1/api/9/http/keyvals/one?key=arg1 http://127.0.0.1/api/9/stream/ http://127.0.0.1/api/9/stream/server_zones/server_backend http://127.0.0.1/api/9/stream/upstreams/ http://127.0.0.1/api/9/stream/upstreams/backend http://127.0.0.1/api/9/stream/upstreams/backend/servers/1
指令
| 句法: |
api
[ |
|---|---|
| 默认: | — |
| 语境: |
location |
打开周边位置的REST API接口。对该位置的访问应受到 限制。
该write参数决定API是只读还是读写。默认情况下,API 是只读的。
所有 API 请求都应在 URI 中包含受支持的 API 版本。如果请求 URI 等于位置前缀,则返回支持的 API 版本列表。当前API版本为“ 9”。
请求行中可选的“ fields”参数指定将输出请求对象的哪些字段:
http://127.0.0.1/api/9/nginx?fields=version,build
| 句法: |
status_zone |
|---|---|
| 默认: | — |
| 语境: |
server, location,if in location |
该指令出现在版本 1.13.12 中。
允许收集
指定的虚拟http
或
流zone服务器状态信息。多个服务器可能共享同一个区域。
从 1.17.0 开始,可以收集每个位置的状态信息。该特殊值off禁用嵌套位置块中的统计信息收集。请注意,统计信息是在处理结束的位置的上下文中收集的。如果在请求处理期间发生
内部重定向,则它可能与原始位置不同
。
兼容性
- /workers/ 数据是在版本9中添加的。
- 在版本8 (1.23.2) 中,详细的失败计数器已添加到 SSL 统计信息中。
ssl每个 HTTP 上游、 服务器区域和流 上游、 服务器区域的 数据已在版本8 (1.21.6) 中添加。- 每个 HTTP
上游、
服务器区域和
位置区域
codes的数据 均在版本7 中添加。responses - / stream /limit_conns/数据是在版本6中添加的。
- /http/limit_conns/ 数据是在版本6中添加的。
- /http/limit_reqs/ 数据是在版本6中添加的。
-
从版本5 开始,可以
设置或
更改键值对的
“
expire”参数 。 - / resolvers/数据是在版本5中添加的。
- /http/location_zones/ 数据是在版本5中添加的。
- nginx错误对象的
path和 字段在版本4 中被删除。这些字段在早期的api版本中继续存在,但显示为空值。method - / stream /zone_sync/数据是在版本3中添加的。
- 版本2中添加了drain 参数。
- / stream /keyvals/数据在版本2中添加。
端点
-
/ -
支持的方法:
-
GET- 返回根端点列表返回根端点的列表。
可能的回应:
- 200 - 成功,返回字符串数组
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/nginx -
支持的方法:
-
/processes -
支持的方法:
-
/connections -
支持的方法:
-
/slabs/ -
支持的方法:
-
GET- 返回所有slab的状态使用slab分配器返回每个共享内存区域的slab状态。
请求参数:
fields(string,可选)-
限制将输出slab区域的哪些字段。如果“
fields”值为空,则仅输出区域名称。
可能的回应:
- 200 - 成功,返回所有slab的“带有slab分配器的共享内存区域”对象的集合
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/slabs/{slabZoneName} -
所有方法通用的参数:
slabZoneName(string, 必填)- 带有slab分配器的共享内存区域的名称。
支持的方法:
-
GET- 返回slab的状态使用slab分配器返回特定共享内存区域的slab状态。
请求参数:
fields(string,可选)- 限制将输出slab区域的哪些字段。
可能的回应:
- 200 - 成功,返回带有slab分配器的共享内存区域
- 404 - 未找到 Slab (
SlabNotFound),版本未知 (UnknownVersion),返回错误
-
DELETE- 重置板统计数据重置每个内存插槽的“
reqs”和“ ”指标。fails可能的回应:
-
/http/ -
支持的方法:
-
GET- 返回HTTP相关端点列表返回第一级 HTTP 端点的列表。
可能的回应:
- 200 - 成功,返回字符串数组
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/http/requests -
支持的方法:
-
/http/server_zones/ -
支持的方法:
-
GET- 返回所有 HTTP 服务器区域的状态返回每个 HTTP服务器区域的状态信息。
请求参数:
fields(string,可选)-
限制服务器区域的哪些字段将被输出。如果“
fields”值为空,则仅输出服务器区域名称。
可能的回应:
- 200 - 成功,返回所有 HTTP 服务器区域的“ HTTP Server Zone ”对象的集合
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/http/server_zones/{httpServerZoneName} -
所有方法通用的参数:
httpServerZoneName(string, 必填)- HTTP 服务器区域的名称。
支持的方法:
-
GET- 返回 HTTP 服务器区域的状态返回特定 HTTP 服务器区域的状态。
请求参数:
fields(string,可选)- 限制服务器区域的哪些字段将被输出。
可能的回应:
- 200 - 成功,返回HTTP 服务器区域
- 404 - 未找到服务器区域 (
ServerZoneNotFound),版本未知 (UnknownVersion),返回错误
-
DELETE- 重置 HTTP 服务器区域的统计信息重置特定 HTTP 服务器区域中接受和丢弃的请求、响应、接收和发送字节、SSL 握手计数器和会话重用的统计信息。
可能的回应:
-
/http/location_zones/ -
支持的方法:
-
/http/location_zones/{httpLocationZoneName} -
所有方法通用的参数:
httpLocationZoneName(string, 必填)- HTTP位置区域 的名称。
支持的方法:
-
GET- 返回 HTTP 位置区域的状态返回特定 HTTP位置区域的状态。
请求参数:
fields(string,可选)- 限制将输出位置区域的哪些字段。
可能的回应:
-
DELETE- 重置位置区域的统计数据。重置特定位置区域中接受和丢弃的请求、响应、接收和发送字节的统计数据。
可能的回应:
-
/http/caches/ -
支持的方法:
-
GET- 返回所有缓存的状态返回由proxy_cache_path和其他“ ”指令配置的每个缓存的状态
*_cache_path。请求参数:
fields(string,可选)-
限制缓存区域的哪些字段将被输出。如果“
fields”值为空,则仅输出缓存区域的名称。
可能的回应:
- 200 - 成功,返回所有 HTTP 缓存的“ HTTP Cache ”对象的集合
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/http/caches/{httpCacheZoneName} -
所有方法通用的参数:
httpCacheZoneName(string, 必填)- 缓存区域的名称。
支持的方法:
-
/http/limit_conns/ -
支持的方法:
-
GET- 返回所有 HTTP limit_conn 区域的状态返回每个 HTTP limit_conn 区域的状态信息。
请求参数:
fields(string,可选)-
限制 limit_conn 区域的哪些字段将被输出。如果“
fields”值为空,则仅输出区域名称。
可能的回应:
- 200 - 成功,返回所有 HTTP 限制 conns 的“ HTTP Connections Limiting ”对象的集合
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/http/limit_conns/{httpLimitConnZoneName} -
所有方法通用的参数:
httpLimitConnZoneName(string, 必填)- limit_conn 区域 的名称。
支持的方法:
-
GET- 返回 HTTP limit_conn 区域的状态返回特定 HTTP limit_conn 区域的状态。
请求参数:
fields(string,可选)- 限制limit_conn 区域的哪些字段将被输出。
可能的回应:
-
DELETE- 重置 HTTP limit_conn 区域的统计信息重置连接限制统计信息。
可能的回应:
-
/http/limit_reqs/ -
支持的方法:
-
GET- 返回所有 HTTP limit_req 区域的状态返回每个 HTTP limit_req 区域的状态信息。
请求参数:
fields(string,可选)-
限制 limit_req 区域的哪些字段将被输出。如果“
fields”值为空,则仅输出区域名称。
可能的回应:
- 200 - 成功,返回所有 HTTP 限制请求的“ HTTP 请求速率限制”对象的集合
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/http/limit_reqs/{httpLimitReqZoneName} -
所有方法通用的参数:
httpLimitReqZoneName(string, 必填)- limit_req zone 的名称。
支持的方法:
-
GET- 返回 HTTP limit_req 区域的状态返回特定 HTTP limit_req zone的状态。
请求参数:
fields(string,可选)- 限制limit_req 区域的哪些字段将被输出。
可能的回应:
- 200 - 成功,返回HTTP 请求速率限制
- 404 - limit_req 未找到 (
LimitReqNotFound),未知版本 (UnknownVersion),返回错误
-
DELETE- 重置 HTTP limit_req 区域的统计信息重置请求限制统计信息。
可能的回应:
-
/http/upstreams/ -
支持的方法:
-
GET- 返回所有HTTP上游服务器组的状态返回每个 HTTP 上游服务器组及其服务器的状态。
请求参数:
fields(string,可选)-
限制上游服务器组的哪些字段将被输出。如果“
fields”值为空,则仅输出上游名称。
可能的回应:
- 200 - 成功,返回所有 HTTP 上游的“ HTTP Upstream ”对象的集合
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/http/upstreams/{httpUpstreamName}/ -
所有方法通用的参数:
httpUpstreamName(string, 必填)- HTTP上游服务器组的名称。
支持的方法:
-
GET- 返回HTTP上游服务器组的状态返回特定 HTTP 上游服务器组及其服务器的状态。
请求参数:
fields(string,可选)- 限制上游服务器组的哪些字段将被输出。
可能的回应:
-
DELETE- 重置HTTP上游服务器组的统计信息重置上游服务器组中每个上游服务器的统计信息和队列统计信息。
可能的回应:
-
/http/upstreams/{httpUpstreamName}/servers/ -
所有方法通用的参数:
httpUpstreamName(string, 必填)- 上游服务器组的名称。
支持的方法:
-
GET- 返回HTTP上游服务器组中所有服务器的配置返回特定 HTTP 上游服务器组中每个服务器的配置。
可能的回应:
- 200 - 成功,返回HTTP 上游服务器数组
- 400 - 上游是静态的 (
UpstreamStatic),返回错误 - 404 - 未知版本 (
UnknownVersion),未找到上游 (UpstreamNotFound),返回错误
-
POST- 将服务器添加到 HTTP 上游服务器组将新服务器添加到 HTTP 上游服务器组。服务器参数以 JSON 格式指定。
请求参数:
postHttpUpstreamServer(HTTP 上游服务器,必需)-
新服务器的地址和其他可选参数(JSON 格式)。“
ID”、“backup”和“service”参数无法更改。
可能的回应:
- 201 - 创建,返回HTTP 上游服务器
- 400 - 上游是静态的 (
UpstreamStatic)、无效的“parameter”值 (UpstreamConfFormatError)、缺少“server”参数 (UpstreamConfFormatError)、未知参数“name” (UpstreamConfFormatError)、嵌套对象或列表 (UpstreamConfFormatError)、error解析时的“ ” (UpstreamBadAddress)、服务上游“host”可能没有端口(UpstreamBadAddress),服务上游“host”需要域名(UpstreamBadAddress),无效“weight”(UpstreamBadWeight),无效“max_conns”(UpstreamBadMaxConns),无效“max_fails”(UpstreamBadMaxFails),无效“fail_timeout”(UpstreamBadFailTimeout),无效“slow_start”(UpstreamBadSlowStart),读取请求体失败BodyReadError),路由太长(UpstreamBadRoute),“service”为空(UpstreamBadService),没有定义解析器来解析(UpstreamConfNoResolver),上游“name”没有备份(UpstreamNoBackup),上游“name”内存耗尽(UpstreamOutOfMemory),返回错误 - 404 - 未知版本 (
UnknownVersion),未找到上游 (UpstreamNotFound),返回错误 - 405 - 方法被禁用 (
MethodDisabled),返回错误 - 409 - 条目存在 (
EntryExists),返回错误 - 415 - JSON 错误 (
JsonError),返回错误
-
/http/upstreams/{httpUpstreamName}/servers/{httpUpstreamServerId} -
所有方法通用的参数:
httpUpstreamName(string, 必填)- 上游服务器组的名称。
httpUpstreamServerId(string, 必填)- 服务器的 ID。
支持的方法:
-
GET- 返回HTTP上游服务器组中服务器的配置返回 HTTP 上游服务器组中特定服务器的配置。
可能的回应:
- 200 - 成功,返回HTTP 上游服务器
- 400 - 上游是静态的 (
UpstreamStatic),服务器 ID 无效 (UpstreamBadServerId),返回错误 - 404 - ID 为“
id”的服务器不存在 (UpstreamServerNotFound),版本未知 (UnknownVersion),未找到上游 (UpstreamNotFound),返回错误
-
PATCH- 修改HTTP上游服务器组中的服务器修改 HTTP 上游服务器组中特定服务器的设置。服务器参数以 JSON 格式指定。
请求参数:
patchHttpUpstreamServer(HTTP 上游服务器,必需)-
服务器参数,以 JSON 格式指定。“
ID”、“backup”和“service”参数无法更改。
可能的回应:
- 200 - 成功,返回HTTP 上游服务器
- 400 - 上游是静态的 (
UpstreamStatic)、无效的“parameter”值 (UpstreamConfFormatError)、未知参数“name” (UpstreamConfFormatError)、嵌套对象或列表 (UpstreamConfFormatError)、error解析时的“ ” (UpstreamBadAddress)、无效的“server”参数 (UpstreamBadAddress)、无效的服务器 ID (UpstreamBadServerId)、无效“weight”(UpstreamBadWeight)、无效“max_conns”(UpstreamBadMaxConns)、无效“max_fails”(UpstreamBadMaxFails)、无效“fail_timeout”(UpstreamBadFailTimeout)、无效“slow_start”(UpstreamBadSlowStart)、读取请求体失败BodyReadError)、路由太长(UpstreamBadRoute)、“service”为空(UpstreamBadService)、服务器“ID”地址不可变(UpstreamServerImmutable),服务器“ID”权重不可变(UpstreamServerWeightImmutable),上游“name”内存耗尽(UpstreamOutOfMemory),返回错误 - 404 - ID 为“
id”的服务器不存在 (UpstreamServerNotFound),版本未知 (UnknownVersion),未找到上游 (UpstreamNotFound),返回错误 - 405 - 方法被禁用 (
MethodDisabled),返回错误 - 415 - JSON 错误 (
JsonError),返回错误
-
DELETE- 从 HTTP 上游服务器组中删除服务器从 HTTP 上游服务器组中删除服务器。
可能的回应:
- 200 - 成功,返回HTTP 上游服务器数组
- 400 - 上游是静态的 (
UpstreamStatic),服务器 ID 无效 (UpstreamBadServerId),服务器“id”不可移动 (UpstreamServerImmutable),返回错误 - 404 - ID 为“
id”的服务器不存在 (UpstreamServerNotFound),版本未知 (UnknownVersion),未找到上游 (UpstreamNotFound),返回错误 - 405 - 方法被禁用 (
MethodDisabled),返回错误
-
/http/keyvals/ -
支持的方法:
-
GET- 从所有 HTTP keyval 区域返回键值对请求参数:
fields(string,可选)-
如果“
fields”值为空,则仅输出 HTTP keyval 区域名称。
可能的回应:
- 200 - 成功,返回所有 HTTP keyvals 的“ HTTP Keyval Shared Memory Zone ”对象的集合
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/http/keyvals/{httpKeyvalZoneName} -
所有方法通用的参数:
httpKeyvalZoneName(string, 必填)- HTTP keyval 共享内存区域的名称。
支持的方法:
-
GET- 从 HTTP keyval 区域返回键值对返回存储在特定 HTTP keyval 共享内存区域中的键值对。
请求参数:
key(string,可选)- 从 HTTP keyval 区域获取特定的键值对。
可能的回应:
- 200 - 成功,返回HTTP Keyval 共享内存区域
- 404 - Keyval 未找到 (
KeyvalNotFound)、keyval key 未找到 (KeyvalKeyNotFound)、未知版本 (UnknownVersion),返回错误
-
POST- 将键值对添加到 HTTP keyval 区域将新的键值对添加到 HTTP keyval 共享内存区域。如果 HTTP keyval 共享内存区域为空,则可以输入多个键值对。
请求参数:
Key-value(HTTP Keyval 共享内存区,必需)-
键值对以 JSON 格式指定。如果 HTTP keyval 共享内存区域为空,则可以输入多个键值对。
expire可以使用覆盖keyval_zonetimeout指令参数的参数为键值对指定过期时间(以毫秒为单位)。
可能的回应:
- 201 - 创建
- 400 - JSON 无效 (
KeyvalFormatError)、密钥格式无效 (KeyvalFormatError)、需要密钥 (KeyvalFormatError)、未启用密钥超时 (KeyvalFormatError)、只能添加一个密钥 (KeyvalFormatError)、读取请求正文失败BodyReadError),返回错误 - 404 - 未找到密钥 (
KeyvalNotFound),版本未知 (UnknownVersion),返回错误 - 405 - 方法被禁用 (
MethodDisabled),返回错误 - 409 - 条目存在 (
EntryExists),键已存在 (KeyvalKeyExists),返回错误 - 413 - 请求实体太大,返回错误
- 415 - JSON 错误 (
JsonError),返回错误
-
PATCH- 修改键值或删除键更改键值对中选定键的值、通过将键值设置为 来删除键
null、更改键值对的过期时间。如果启用了集群中键值区域的同步,则仅删除目标集群节点上的键。expire可以使用覆盖keyval_zonetimeout指令参数的参数为键值对指定过期时间(以毫秒为单位)。请求参数:
httpKeyvalZoneKeyValue(HTTP Keyval 共享内存区,必需)- 键的新值以 JSON 格式指定。
可能的回应:
- 204 - 成功
- 400 - 无效 JSON (
KeyvalFormatError)、需要密钥 (KeyvalFormatError)、未启用 keyval 超时 (KeyvalFormatError)、只能更新一个密钥 (KeyvalFormatError)、读取请求正文失败BodyReadError),返回错误 - 404 - Keyval 未找到 (
KeyvalNotFound)、keyval key 未找到 (KeyvalKeyNotFound)、未知版本 (UnknownVersion),返回错误 - 405 - 方法被禁用 (
MethodDisabled),返回错误 - 413 - 请求实体太大,返回错误
- 415 - JSON 错误 (
JsonError),返回错误
-
DELETE- 清空 HTTP keyval 区域从 HTTP keyval 共享内存区域中删除所有键值对。如果启用了集群中 keyval 区域的同步,则仅清空目标集群节点上的 keyval 区域。
可能的回应:
-
/stream/ -
支持的方法:
-
GET- 返回与流相关的端点列表返回第一级流端点的列表。
可能的回应:
- 200 - 成功,返回字符串数组
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/stream/server_zones/ -
支持的方法:
-
GET- 返回所有流服务器区域的状态返回每个流服务器区域的状态信息。
请求参数:
fields(string,可选)-
限制服务器区域的哪些字段将被输出。如果“
fields”值为空,则仅输出服务器区域名称。
可能的回应:
- 200 - 成功,返回所有流服务器区域的“ Stream Server Zone ”对象的集合
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/stream/server_zones/{streamServerZoneName} -
所有方法通用的参数:
streamServerZoneName(string, 必填)- 流服务器区域的名称。
支持的方法:
-
GET- 返回流服务器区域的状态返回特定流服务器区域的状态。
请求参数:
fields(string,可选)- 限制服务器区域的哪些字段将被输出。
可能的回应:
-
DELETE- 重置流服务器区域的统计信息重置特定流服务器区域中接受和丢弃的连接、会话、接收和发送字节、SSL 握手计数器和会话重用的统计信息。
可能的回应:
-
/stream/limit_conns/ -
支持的方法:
-
GET- 返回所有流 limit_conn 区域的状态返回每个流limit_conn zone的状态信息。
请求参数:
fields(string,可选)-
限制 limit_conn 区域的哪些字段将被输出。如果“
fields”值为空,则仅输出区域名称。
可能的回应:
-
-
/stream/limit_conns/{streamLimitConnZoneName} -
所有方法通用的参数:
streamLimitConnZoneName(string, 必填)- limit_conn 区域 的名称。
支持的方法:
-
GET- 返回流 limit_conn 区域的状态返回特定流limit_conn zone的状态。
请求参数:
fields(string,可选)- 限制limit_conn 区域的哪些字段将被输出。
可能的回应:
-
DELETE- 重置流 limit_conn 区域的统计信息重置连接限制统计信息。
可能的回应:
-
/stream/upstreams/ -
支持的方法:
-
GET- 返回所有流上游服务器组的状态返回每个流上游服务器组及其服务器的状态。
请求参数:
fields(string,可选)-
限制上游服务器组的哪些字段将被输出。如果“
fields”值为空,则仅输出上游名称。
可能的回应:
- 200 - 成功,返回所有流上游的“ Stream Upstream ”对象的集合
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/stream/upstreams/{streamUpstreamName}/ -
所有方法通用的参数:
streamUpstreamName(string, 必填)- 流上游服务器组的名称。
支持的方法:
-
GET- 返回流上游服务器组的状态返回特定流上游服务器组及其服务器的状态。
请求参数:
fields(string,可选)- 限制上游服务器组的哪些字段将被输出。
可能的回应:
- 200 - 成功,返回Stream Upstream
- 400 - 上游是静态的 (
UpstreamStatic),返回错误 - 404 - 未知版本 (
UnknownVersion),未找到上游 (UpstreamNotFound),返回错误
-
DELETE- 重置流上游服务器组的统计信息重置上游服务器组中每个上游服务器的统计信息。
可能的回应:
-
/stream/upstreams/{streamUpstreamName}/servers/ -
所有方法通用的参数:
streamUpstreamName(string, 必填)- 上游服务器组的名称。
支持的方法:
-
GET- 返回流上游服务器组中所有服务器的配置返回特定流上游服务器组中每个服务器的配置。
可能的回应:
- 200 - 成功,返回流上游服务器数组
- 400 - 上游是静态的 (
UpstreamStatic),返回错误 - 404 - 未知版本 (
UnknownVersion),未找到上游 (UpstreamNotFound),返回错误
-
POST- 将服务器添加到流上游服务器组将新服务器添加到流上游服务器组。服务器参数以 JSON 格式指定。
请求参数:
postStreamUpstreamServer(流上游服务器,必需)-
新服务器的地址和其他可选参数(JSON 格式)。“
ID”、“backup”和“service”参数无法更改。
可能的回应:
- 201 - 创建,返回流上游服务器
- 400 - 上游是静态的 (
UpstreamStatic)、无效的“parameter”值 (UpstreamConfFormatError)、缺少“server”参数 (UpstreamConfFormatError)、未知参数“name” (UpstreamConfFormatError)、嵌套对象或列表 ( )、解析时UpstreamConfFormatError“ ” ( )、服务器中没有端口“ ” ( ),服务上游“ ”可能没有端口(),服务上游“ ”需要域名(),无效“ ”(),无效“ ”(),无效“ ”(),无效“ ”(),无效“ ” ( ),“ ”为空( ),没有定义解析器来解析( ),上游“ ”没有备份( ),上游“ ”内存耗尽( ),读取请求体失败),返回ErrorerrorUpstreamBadAddresshostUpstreamBadAddresshostUpstreamBadAddresshostUpstreamBadAddressweightUpstreamBadWeightmax_connsUpstreamBadMaxConnsmax_failsUpstreamBadMaxFailsfail_timeoutUpstreamBadFailTimeoutslow_startUpstreamBadSlowStartserviceUpstreamBadServiceUpstreamConfNoResolvernameUpstreamNoBackupnameUpstreamOutOfMemoryBodyReadError - 404 - 未知版本 (
UnknownVersion),未找到上游 (UpstreamNotFound),返回错误 - 405 - 方法被禁用 (
MethodDisabled),返回错误 - 409 - 条目存在 (
EntryExists),返回错误 - 415 - JSON 错误 (
JsonError),返回错误
-
/stream/upstreams/{streamUpstreamName}/servers/{streamUpstreamServerId} -
所有方法通用的参数:
streamUpstreamName(string, 必填)- 上游服务器组的名称。
streamUpstreamServerId(string, 必填)- 服务器的 ID。
支持的方法:
-
GET- 返回流上游服务器组中服务器的配置返回流上游服务器组中特定服务器的配置。
可能的回应:
-
PATCH- 修改流上游服务器组中的服务器修改流上游服务器组中特定服务器的设置。服务器参数以 JSON 格式指定。
请求参数:
patchStreamUpstreamServer(流上游服务器,必需)-
服务器参数,以 JSON 格式指定。“
ID”、“backup”和“service”参数无法更改。
可能的回应:
- 200 - 成功,返回流上游服务器
- 400 - 上游是静态的 (
UpstreamStatic)、无效的“parameter”值 (UpstreamConfFormatError)、未知参数“name” (UpstreamConfFormatError)、嵌套对象或列表 (UpstreamConfFormatError)、error解析时的“ ” (UpstreamBadAddress)、无效的“server”参数 (UpstreamBadAddress)、服务器中没有端口“ ”host(UpstreamBadAddress)、服务器 ID 无效 (UpstreamBadServerId)、“weight”无效 ( )、“ ”UpstreamBadWeight无效( )、“ ”无效 ( )、“ ”无效 ( )、“ ”无效( )、读取请求正文失败)、“ ”为空 ( ) ,服务器“ ”地址不可变(),服务器“ ”权重不可变(),上游“ ”内存耗尽(),返回错误max_connsUpstreamBadMaxConnsmax_failsUpstreamBadMaxFailsfail_timeoutUpstreamBadFailTimeoutslow_startUpstreamBadSlowStartBodyReadErrorserviceUpstreamBadServiceIDUpstreamServerImmutableIDUpstreamServerWeightImmutablenameUpstreamOutOfMemory - 404 - ID 为“
id”的服务器不存在 (UpstreamServerNotFound),版本未知 (UnknownVersion),未找到上游 (UpstreamNotFound),返回错误 - 405 - 方法被禁用 (
MethodDisabled),返回错误 - 415 - JSON 错误 (
JsonError),返回错误
-
DELETE- 从流上游服务器组中删除服务器从流服务器组中删除服务器。
可能的回应:
- 200 - 成功,返回流上游服务器数组
- 400 - 上游是静态的 (
UpstreamStatic),服务器 ID 无效 (UpstreamBadServerId),服务器“id”不可移动 (UpstreamServerImmutable),返回错误 - 404 - ID 为“
id”的服务器不存在 (UpstreamServerNotFound),版本未知 (UnknownVersion),未找到上游 (UpstreamNotFound),返回错误 - 405 - 方法被禁用 (
MethodDisabled),返回错误
-
/stream/keyvals/ -
支持的方法:
-
GET- 从所有流键值区域返回键值对返回每个流 keyval 共享内存区域的键值对。
请求参数:
fields(string,可选)-
如果“
fields”值为空,则仅输出流键值区域名称。
可能的回应:
- 200 - 成功,返回所有流 keyval 的“ Stream Keyval Shared Memory Zone ”对象的集合
- 404 - 未知版本 (
UnknownVersion),返回错误
-
-
/stream/keyvals/{streamKeyvalZoneName} -
所有方法通用的参数:
streamKeyvalZoneName(string, 必填)- 流 keyval 共享内存区域的名称。
支持的方法:
-
GET- 从流键值区返回键值对返回存储在特定流 keyval 共享内存区域中的键值对。
请求参数:
key(string,可选)- 从流键值区获取特定的键值对。
可能的回应:
- 200 - 成功,返回Stream Keyval 共享内存区域
- 404 - Keyval 未找到 (
KeyvalNotFound)、keyval key 未找到 (KeyvalKeyNotFound)、未知版本 (UnknownVersion),返回错误
-
POST- 将键值对添加到流键值区将新的键值对添加到流 keyval 共享内存区域。如果流键值共享内存区域为空,则可以输入多个键值对。
请求参数:
Key-value(Stream Keyval 共享内存区,必需)-
键值对以 JSON 格式指定。如果流键值共享内存区域为空,则可以输入多个键值对。
expire可以使用覆盖keyval_zonetimeout指令参数的参数为键值对指定过期时间(以毫秒为单位)。
可能的回应:
- 201 - 创建
- 400 - JSON 无效 (
KeyvalFormatError)、密钥格式无效 (KeyvalFormatError)、需要密钥 (KeyvalFormatError)、未启用密钥超时 (KeyvalFormatError)、只能添加一个密钥 (KeyvalFormatError)、读取请求正文失败BodyReadError),返回错误 - 404 - 未找到密钥 (
KeyvalNotFound),版本未知 (UnknownVersion),返回错误 - 405 - 方法被禁用 (
MethodDisabled),返回错误 - 409 - 条目存在 (
EntryExists),键已存在 (KeyvalKeyExists),返回错误 - 413 - 请求实体太大,返回错误
- 415 - JSON 错误 (
JsonError),返回错误
-
PATCH- 修改键值或删除键更改键值对中选定键的值、通过将键值设置为 来删除键
null、更改键值对的过期时间。如果启用了集群中键值区域的同步,则仅删除目标集群节点上的键。expire使用覆盖keyval_zonetimeout指令参数的参数指定过期时间(以毫秒为单位)。请求参数:
streamKeyvalZoneKeyValue(Stream Keyval 共享内存区,必需)- 键的新值以 JSON 格式指定。
可能的回应:
- 204 - 成功
- 400 - 无效 JSON (
KeyvalFormatError)、需要密钥 (KeyvalFormatError)、未启用 keyval 超时 (KeyvalFormatError)、只能更新一个密钥 (KeyvalFormatError)、读取请求正文失败BodyReadError),返回错误 - 404 - Keyval 未找到 (
KeyvalNotFound)、keyval key 未找到 (KeyvalKeyNotFound)、未知版本 (UnknownVersion),返回错误 - 405 - 方法被禁用 (
MethodDisabled),返回错误 - 413 - 请求实体太大,返回错误
- 415 - JSON 错误 (
JsonError),返回错误
-
DELETE- 清空流keyval区域从流 keyval 共享内存区域中删除所有键值对。如果启用了集群中 keyval 区域的同步,则仅清空目标集群节点上的 keyval 区域。
可能的回应:
-
/stream/zone_sync/ -
支持的方法:
-
/resolvers/ -
支持的方法:
-
/resolvers/{resolverZoneName} -
所有方法通用的参数:
resolverZoneName(string, 必填)- 解析器区域的名称。
支持的方法:
-
GET- 返回解析器区域的统计信息返回存储在特定解析器区域中的统计信息。
请求参数:
fields(string,可选)- 限制解析器区域的哪些字段将被输出(请求、响应或两者)。
可能的回应:
-
DELETE- 重置解析器区域的统计数据。重置特定解析器区域中的统计信息。
可能的回应:
-
/ssl -
支持的方法:
-
/workers/ -
支持的方法:
-
GET- 返回所有工作进程的统计信息返回所有工作进程的统计信息,例如已接受、已丢弃、活动、空闲连接、总请求和当前请求。
请求参数:
fields(string,可选)- 限制将输出工作进程统计信息的哪些字段。
可能的回应:
-
DELETE- 重置所有工作进程的统计信息。重置所有工作进程的统计信息,例如已接受、已丢弃、活动、空闲连接、总请求和当前请求。
可能的回应:
-
-
/workers/{workerId} -
所有方法通用的参数:
workerId(string, 必填)- 工作进程的 ID。
支持的方法:
-
GET- 返回工作进程的状态返回特定工作进程的状态。
请求参数:
fields(string,可选)- 限制将输出工作进程统计信息的哪些字段。
可能的回应:
-
DELETE- 重置工作进程的统计信息。重置已接受、已丢弃、活动、空闲连接以及总请求和当前请求的统计信息。
可能的回应:
响应对象
-
nginx:
关于nginx的一般信息:-
version(string) - nginx 的版本。
-
build(string) - nginx 构建的名称。
-
address(string) - 接受状态请求的服务器的地址。
-
generation(integer) - 配置重新 加载的总数。
-
load_timestamp(string) - 上次重新加载配置的时间,采用 ISO 8601 格式,毫秒分辨率。
-
timestamp(string) - 当前时间采用 ISO 8601 格式,精度为毫秒。
-
pid(integer) - 处理状态请求的工作进程的 ID。
-
ppid(integer) - 启动工作进程的 主进程的 ID 。
例子:
{ "nginx" : { "version" : "1.21.6", "build" : "nginx-plus-r27", "address" : "206.251.255.64", "generation" : 6, "load_timestamp" : "2022-06-28T11:15:44.467Z", "timestamp" : "2022-06-28T09:26:07.305Z", "pid" : 32212, "ppid" : 32210 } } -
-
流程:
-
respawned(integer) - 异常终止和重生的子进程总数。
例子:
{ "respawned" : 0 } -
-
连接:
已接受、已丢弃、活动和空闲连接的数量。-
accepted(integer) - 接受的客户端连接总数。
-
dropped(integer) - 断开的客户端连接总数。
-
active(integer) - 当前活动客户端连接数。
-
idle(integer) - 当前空闲客户端连接数。
例子:
{ "accepted" : 4968119, "dropped" : 0, "active" : 5, "idle" : 117 } -
-
SSL:
-
handshakes(integer) - 成功的 SSL 握手总数。
-
handshakes_failed(integer) - SSL 握手失败的总数。
-
session_reuses(integer) - SSL 握手期间会话重用的总数。
-
no_common_protocol(integer) - 由于没有通用协议而导致 SSL 握手失败的次数。
-
no_common_cipher(integer) - 由于没有共享密码而导致 SSL 握手失败的次数。
-
handshake_timeout(integer) - 由于超时而导致 SSL 握手失败的次数。
-
peer_rejected_cert(integer) - 当 nginx 向客户端提供证书但被拒绝并显示相应警报消息时,SSL 握手失败的次数。
-
verify_failures -
SSL 证书验证错误
-
no_cert(integer) - 客户未提供所需的证书。
-
expired_cert(integer) - 客户提供了过期或尚未有效的证书。
-
revoked_cert(integer) - 客户出示了已吊销的证书。
-
hostname_mismatch(integer) - 服务器的证书与主机名不匹配。
-
other(integer) - 其他 SSL 证书验证错误。
-
例子:
{ "handshakes" : 79572, "handshakes_failed" : 21025, "session_reuses" : 15762, "no_common_protocol" : 4, "no_common_cipher" : 2, "handshake_timeout" : 0, "peer_rejected_cert" : 0, "verify_failures" : { "no_cert" : 0, "expired_cert" : 2, "revoked_cert" : 1, "hostname_mismatch" : 2, "other" : 1 } } -
-
与slab分配器共享内存区域:
带有slab分配器的共享内存区域-
pages -
空闲和已用内存页数。
-
used(integer) - 当前已使用的内存页数。
-
free(integer) - 当前空闲内存页数。
-
-
slots -
内存插槽的状态数据(8、16、32、64、128 等)
“ Memory Slot ”对象的集合
例子:
{ "pages" : { "used" : 1143, "free" : 2928 }, "slots" : { "8" : { "used" : 0, "free" : 0, "reqs" : 0, "fails" : 0 }, "16" : { "used" : 0, "free" : 0, "reqs" : 0, "fails" : 0 }, "32" : { "used" : 0, "free" : 0, "reqs" : 0, "fails" : 0 }, "64" : { "used" : 1, "free" : 63, "reqs" : 1, "fails" : 0 }, "128" : { "used" : 0, "free" : 0, "reqs" : 0, "fails" : 0 }, "256" : { "used" : 18078, "free" : 178, "reqs" : 1635736, "fails" : 0 } } } -
-
内存插槽:
-
used(integer) - 当前已使用的内存插槽数。
-
free(integer) - 当前空闲内存插槽的数量。
-
reqs(integer) - 尝试分配指定大小的内存的总数。
-
fails(integer) - 尝试分配指定大小的内存失败的次数。
-
-
HTTP 请求:
-
total(integer) - 客户端请求总数。
-
current(integer) - 当前客户端请求的数量。
例子:
{ "total" : 10624511, "current" : 4 } -
-
HTTP 服务器区:
-
processing(integer) - 当前正在处理的客户端请求数。
-
requests(integer) - 从客户端收到的客户端请求总数。
-
responses -
发送给客户端的响应总数,状态代码为“
1xx”、“2xx”、“3xx”、“4xx”和“5xx”的响应数量,以及每个状态代码的响应数量。-
1xx(integer) 1xx带有“ ”状态代码的 响应数量。-
2xx(integer) 2xx带有“ ”状态代码的 响应数量。-
3xx(integer) 3xx带有“ ”状态代码的 响应数量。-
4xx(integer) 4xx带有“ ”状态代码的 响应数量。-
5xx(integer) 5xx带有“ ”状态代码的 响应数量。-
codes -
每个状态代码的响应数。
-
codeNumber(integer) - 具有此特定状态代码的响应数。
-
-
total(integer) - 发送给客户端的响应总数。
-
-
discarded(integer) - 已完成但未发送响应的请求总数。
-
received(integer) - 从客户端接收的总字节数。
-
sent(integer) - 发送到客户端的总字节数。
-
ssl -
-
handshakes(integer) - 成功的 SSL 握手总数。
-
handshakes_failed(integer) - SSL 握手失败的总数。
-
session_reuses(integer) - SSL 握手期间会话重用的总数。
-
no_common_protocol(integer) - 由于没有通用协议而导致 SSL 握手失败的次数。
-
no_common_cipher(integer) - 由于没有共享密码而导致 SSL 握手失败的次数。
-
handshake_timeout(integer) - 由于超时而导致 SSL 握手失败的次数。
-
peer_rejected_cert(integer) - 当 nginx 向客户端提供证书但被拒绝并显示相应警报消息时,SSL 握手失败的次数。
-
verify_failures -
SSL 证书验证错误
-
no_cert(integer) - 客户未提供所需的证书。
-
expired_cert(integer) - 客户提供了过期或尚未有效的证书。
-
revoked_cert(integer) - 客户出示了已吊销的证书。
-
other(integer) - 其他 SSL 证书验证错误。
-
-
例子:
{ "processing" : 1, "requests" : 706690, "responses" : { "1xx" : 0, "2xx" : 699482, "3xx" : 4522, "4xx" : 907, "5xx" : 266, "codes" : { "200" : 699482, "301" : 4522, "404" : 907, "503" : 266 }, "total" : 705177 }, "discarded" : 1513, "received" : 172711587, "sent" : 19415530115, "ssl" : { "handshakes" : 104303, "handshakes_failed" : 1421, "session_reuses" : 54645, "no_common_protocol" : 4, "no_common_cipher" : 2, "handshake_timeout" : 0, "peer_rejected_cert" : 0, "verify_failures" : { "no_cert" : 0, "expired_cert" : 2, "revoked_cert" : 1, "other" : 1 } } } -
-
HTTP 位置区域:
-
requests(integer) - 从客户端收到的客户端请求总数。
-
responses -
发送给客户端的响应总数,状态代码为“
1xx”、“2xx”、“3xx”、“4xx”和“5xx”的响应数量,以及每个状态代码的响应数量。-
1xx(integer) 1xx带有“ ”状态代码的 响应数量。-
2xx(integer) 2xx带有“ ”状态代码的 响应数量。-
3xx(integer) 3xx带有“ ”状态代码的 响应数量。-
4xx(integer) 4xx带有“ ”状态代码的 响应数量。-
5xx(integer) 5xx带有“ ”状态代码的 响应数量。-
codes -
每个状态代码的响应数。
-
codeNumber(integer) - 具有此特定状态代码的响应数。
-
-
total(integer) - 发送给客户端的响应总数。
-
-
discarded(integer) - 已完成但未发送响应的请求总数。
-
received(integer) - 从客户端接收的总字节数。
-
sent(integer) - 发送到客户端的总字节数。
例子:
{ "requests" : 706690, "responses" : { "1xx" : 0, "2xx" : 699482, "3xx" : 4522, "4xx" : 907, "5xx" : 266, "codes" : { "200" : 112674, "301" : 4522, "404" : 2504, "503" : 266 }, "total" : 705177 }, "discarded" : 1513, "received" : 172711587, "sent" : 19415530115 } -
-
HTTP 缓存:
-
size(integer) - 缓存的当前大小。
-
max_size(integer) - 配置中指定的缓存最大大小的限制。
-
cold(boolean) - 一个布尔值,指示“缓存加载器”进程是否仍在将数据从磁盘加载到缓存中。
-
hit -
-
responses(integer) - 从缓存中读取的 有效响应 总数。
-
bytes(integer) - 从缓存中读取的总字节数。
-
-
stale -
-
responses(integer) -
从缓存中读取的过期响应总数(请参阅proxy_cache_use_stale和其他“
*_cache_use_stale”指令)。 -
bytes(integer) - 从缓存中读取的总字节数。
-
-
updating -
-
responses(integer) -
更新响应时从缓存读取的过期响应总数(请参阅proxy_cache_use_stale和其他“
*_cache_use_stale”指令)。 -
bytes(integer) - 从缓存中读取的总字节数。
-
-
revalidated -
-
responses(integer) -
从缓存中读取的过期和重新验证响应的总数(请参阅proxy_cache_revalidate和其他“
*_cache_revalidate”指令。 -
bytes(integer) - 从缓存中读取的总字节数。
-
-
miss -
-
responses(integer) - 在缓存中未找到的响应总数。
-
bytes(integer) - 从代理服务器读取的总字节数。
-
responses_written(integer) - 写入缓存的响应总数。
-
bytes_written(integer) - 写入缓存的总字节数。
-
-
expired -
-
responses(integer) - 未从缓存中获取的过期响应总数。
-
bytes(integer) - 从代理服务器读取的总字节数。
-
responses_written(integer) - 写入缓存的响应总数。
-
bytes_written(integer) - 写入缓存的总字节数。
-
-
bypass -
-
responses(integer) - 由于proxy_cache_bypass和其他“ ”指令
而未在缓存中查找的响应总数
*_cache_bypass。 -
bytes(integer) - 从代理服务器读取的总字节数。
-
responses_written(integer) - 写入缓存的响应总数。
-
bytes_written(integer) - 写入缓存的总字节数。
-
例子:
{ "size" : 530915328, "max_size" : 536870912, "cold" : false, "hit" : { "responses" : 254032, "bytes" : 6685627875 }, "stale" : { "responses" : 0, "bytes" : 0 }, "updating" : { "responses" : 0, "bytes" : 0 }, "revalidated" : { "responses" : 0, "bytes" : 0 }, "miss" : { "responses" : 1619201, "bytes" : 53841943822 }, "expired" : { "responses" : 45859, "bytes" : 1656847080, "responses_written" : 44992, "bytes_written" : 1641825173 }, "bypass" : { "responses" : 200187, "bytes" : 5510647548, "responses_written" : 200173, "bytes_written" : 44992 } } -
-
HTTP 连接限制:
-
passed(integer) - 既不受限也不被视为受限的连接总数。
-
rejected(integer) - 被拒绝的连接总数。
-
rejected_dry_run(integer) - 在空运行模式 下被拒绝的连接总数。
例子:
{ "passed" : 15, "rejected" : 0, "rejected_dry_run" : 2 } -
-
HTTP 请求速率限制:
-
passed(integer) - 既不受限也不被视为受限的请求总数。
-
delayed(integer) - 延迟的请求总数。
-
rejected(integer) - 被拒绝的请求总数。
-
delayed_dry_run(integer) - 试运行模式 下延迟的请求总数。
-
rejected_dry_run(integer) - 在试运行模式 下被拒绝的请求总数。
例子:
{ "passed" : 15, "delayed" : 4, "rejected" : 0, "delayed_dry_run" : 1, "rejected_dry_run" : 2 } -
-
HTTP 上游:
-
peers -
数组:
-
id(integer) - 服务器的 ID。
-
server(string) - 服务器的 地址 。
-
service(string) - 服务器指令的服务参数 值。
-
name(string) - 服务器指令 中指定的服务器的名称。
-
backup(boolean) - 一个布尔值,指示服务器是否是备份服务器。
-
weight(integer) - 服务器的 重量。
-
state(string) -
当前状态,可以是“
up”、“draining”、“down”、“unavail”、“checking”和“unhealthy”之一。 -
active(integer) - 当前活动连接数。
-
ssl -
-
handshakes(integer) - 成功的 SSL 握手总数。
-
handshakes_failed(integer) - SSL 握手失败的总数。
-
session_reuses(integer) - SSL 握手期间会话重用的总数。
-
no_common_protocol(integer) - 由于没有通用协议而导致 SSL 握手失败的次数。
-
handshake_timeout(integer) - 由于超时而导致 SSL 握手失败的次数。
-
peer_rejected_cert(integer) - 当 nginx 向上游服务器提供证书但被拒绝并显示相应警报消息时,SSL 握手失败的次数。
-
verify_failures -
SSL 证书验证错误
-
expired_cert(integer) - 上游服务器提供了过期或尚未有效的证书。
-
revoked_cert(integer) - 上游服务器提供了已吊销的证书。
-
hostname_mismatch(integer) - 服务器的证书与主机名不匹配。
-
other(integer) - 其他 SSL 证书验证错误。
-
-
-
max_conns(integer) - 服务器的 max_conns 限制。
-
requests(integer) - 转发到此服务器的客户端请求总数。
-
responses -
-
1xx(integer) 1xx带有“ ”状态代码的 响应数量。-
2xx(integer) 2xx带有“ ”状态代码的 响应数量。-
3xx(integer) 3xx带有“ ”状态代码的 响应数量。-
4xx(integer) 4xx带有“ ”状态代码的 响应数量。-
5xx(integer) 5xx带有“ ”状态代码的 响应数量。-
codes -
每个状态代码的响应数。
-
codeNumber(integer) - 具有此特定状态代码的响应数。
-
-
total(integer) - 从该服务器获得的响应总数。
-
-
sent(integer) - 发送到该服务器的总字节数。
-
received(integer) - 从该服务器接收的总字节数。
-
fails(integer) - 尝试与服务器通信失败的总数。
-
unavail(integer) unavail由于不成功尝试次数达到max_fails阈值而导致 服务器无法处理客户端请求(状态“ ”)的次数。-
health_checks -
downtime(integer) -
服务器处于“
unavail”、“checking”和“unhealthy”状态的总时间。 -
downstart(string) unavail服务器变为“ ”、“checking”或“ ” 的时间unhealthy,采用 ISO 8601 格式,毫秒分辨率。-
selected(string) - 最后选择服务器处理请求的时间,采用 ISO 8601 格式,毫秒分辨率。
-
header_time(integer) - 从服务器 获取响应标头的平均时间。
-
response_time(integer) - 从服务器 获得完整响应的平均时间。
-
-
keepalive(integer) - 当前空闲保活连接 数。
-
zombies(integer) - 当前从组中删除但仍在处理活动客户端请求的服务器数量。
-
zone(string) - 保存组配置和运行时状态的 共享内存区域 的名称。
-
queue -
对于请求队列,提供以下数据:
-
size(integer) - 队列中当前的请求数。
-
max_size(integer) - 队列中可同时存在的最大请求数。
-
overflows(integer) - 由于队列溢出而被拒绝的请求总数。
-
例子:
{ "upstream_backend" : { "peers" : [ { "id" : 0, "server" : "10.0.0.1:8088", "name" : "10.0.0.1:8088", "backup" : false, "weight" : 5, "state" : "up", "active" : 0, "ssl" : { "handshakes" : 620311, "handshakes_failed" : 3432, "session_reuses" : 36442, "no_common_protocol" : 4, "handshake_timeout" : 0, "peer_rejected_cert" : 0, "verify_failures" : { "expired_cert" : 2, "revoked_cert" : 1, "hostname_mismatch" : 2, "other" : 1 } }, "max_conns" : 20, "requests" : 667231, "header_time" : 20, "response_time" : 36, "responses" : { "1xx" : 0, "2xx" : 666310, "3xx" : 0, "4xx" : 915, "5xx" : 6, "codes" : { "200" : 666310, "404" : 915, "503" : 6 }, "total" : 667231 }, "sent" : 251946292, "received" : 19222475454, "fails" : 0, "unavail" : 0, "health_checks" : { "checks" : 26214, "fails" : 0, "unhealthy" : 0, "last_passed" : true }, "downtime" : 0, "downstart" : "2022-06-28T11:09:21.602Z", "selected" : "2022-06-28T15:01:25.000Z" }, { "id" : 1, "server" : "10.0.0.1:8089", "name" : "10.0.0.1:8089", "backup" : true, "weight" : 1, "state" : "unhealthy", "active" : 0, "max_conns" : 20, "requests" : 0, "responses" : { "1xx" : 0, "2xx" : 0, "3xx" : 0, "4xx" : 0, "5xx" : 0, "codes" : { }, "total" : 0 }, "sent" : 0, "received" : 0, "fails" : 0, "unavail" : 0, "health_checks" : { "checks" : 26284, "fails" : 26284, "unhealthy" : 1, "last_passed" : false }, "downtime" : 262925617, "downstart" : "2022-06-28T11:09:21.602Z", "selected" : "2022-06-28T15:01:25.000Z" } ], "keepalive" : 0, "zombies" : 0, "zone" : "upstream_backend" } } -
-
HTTP 上游服务器:
HTTP 上游 服务器的动态可配置参数:-
id(integer) - HTTP 上游服务器的 ID。ID 是自动分配的且无法更改。
-
server(string) - 与HTTP上游服务器的地址参数
相同。添加服务器时,可以将其指定为域名。在这种情况下,域名对应的IP地址的变化将被监控并自动应用于上游配置,而不需要重新启动nginx。这需要“ ”块中的解析器
http指令。另请参阅HTTP 上游服务器的 解析参数。 -
service(string) - 与HTTP上游服务器的服务参数 相同。该参数无法更改。
-
weight(integer) - 与HTTP上游服务器的 权重参数 相同。
-
max_conns(integer) - 与HTTP上游服务器的 max_conns参数 相同。
-
max_fails(integer) - 与HTTP上游服务器的 max_fails参数 相同。
-
fail_timeout(string) - 与HTTP上游服务器的 fail_timeout参数 相同。
-
slow_start(string) - 与HTTP上游服务器的 slow_start参数 相同。
-
route(string) - 与HTTP上游服务器的 路由参数 相同。
-
backup(boolean) -
时
true,添加备份服务器。该参数无法更改。 -
down(boolean) - 与HTTP上游服务器的 down参数 相同。
-
drain(boolean) - 与HTTP上游服务器的 drain参数 相同。
-
parent(string) - 已解析服务器的父服务器 ID。ID 是自动分配的且无法更改。
-
host(string) - 已解析服务器的主机名。主机名是自动分配的且无法更改。
例子:
{ "id" : 1, "server" : "10.0.0.1:8089", "weight" : 4, "max_conns" : 0, "max_fails" : 0, "fail_timeout" : "10s", "slow_start" : "10s", "route" : "", "backup" : true, "down" : true } -
-
HTTP Keyval 共享内存区域:
使用 GET 方法时 HTTP keyval 共享内存区域的内容。例子:
{ "key1" : "value1", "key2" : "value2", "key3" : "value3" } -
HTTP Keyval 共享内存区域:
使用 POST 或 PATCH 方法时 HTTP keyval 共享内存区域的内容。例子:
{ "key1" : "value1", "key2" : "value2", "key3" : { "value" : "value3", "expire" : 30000 } } -
流媒体服务器专区:
-
processing(integer) - 当前正在处理的客户端连接数。
-
connections(integer) - 从客户端接受的连接总数。
-
sessions -
已完成的会话总数以及状态代码为“
2xx”、“4xx”或“5xx”的已完成会话数。 -
discarded(integer) - 未创建会话时已完成的连接总数。
-
received(integer) - 从客户端接收的总字节数。
-
sent(integer) - 发送到客户端的总字节数。
-
ssl -
-
handshakes(integer) - 成功的 SSL 握手总数。
-
handshakes_failed(integer) - SSL 握手失败的总数。
-
session_reuses(integer) - SSL 握手期间会话重用的总数。
-
no_common_protocol(integer) - 由于没有通用协议而导致 SSL 握手失败的次数。
-
no_common_cipher(integer) - 由于没有共享密码而导致 SSL 握手失败的次数。
-
handshake_timeout(integer) - 由于超时而导致 SSL 握手失败的次数。
-
peer_rejected_cert(integer) - 当 nginx 向客户端提供证书但被拒绝并显示相应警报消息时,SSL 握手失败的次数。
-
verify_failures -
SSL 证书验证错误
-
no_cert(integer) - 客户未提供所需的证书。
-
expired_cert(integer) - 客户提供了过期或尚未有效的证书。
-
revoked_cert(integer) - 客户出示了已吊销的证书。
-
other(integer) - 其他 SSL 证书验证错误。
-
-
例子:
{ "dns" : { "processing" : 1, "connections" : 155569, "sessions" : { "2xx" : 155564, "4xx" : 0, "5xx" : 0, "total" : 155569 }, "discarded" : 0, "received" : 4200363, "sent" : 20489184, "ssl" : { "handshakes" : 76455, "handshakes_failed" : 432, "session_reuses" : 28770, "no_common_protocol" : 4, "no_common_cipher" : 2, "handshake_timeout" : 0, "peer_rejected_cert" : 0, "verify_failures" : { "no_cert" : 0, "expired_cert" : 2, "revoked_cert" : 1, "other" : 1 } } } } -
-
流连接限制:
-
passed(integer) - 既不受限也不被视为受限的连接总数。
-
rejected(integer) - 被拒绝的连接总数。
-
rejected_dry_run(integer) - 在空运行模式 下被拒绝的连接总数。
例子:
{ "passed" : 15, "rejected" : 0, "rejected_dry_run" : 2 } -
-
上游流:
-
peers -
数组:
-
id(integer) - 服务器的 ID。
-
server(string) - 服务器的 地址 。
-
service(string) - 服务器指令的服务参数 值。
-
name(string) - 服务器指令 中指定的服务器的名称。
-
backup(boolean) - 一个布尔值,指示服务器是否是备份服务器。
-
weight(integer) - 服务器的 重量。
-
state(string) up当前状态,可以是“ ”、“down”、“unavail”、“checking”或“ ” 之一unhealthy。-
active(integer) - 当前连接数。
-
ssl -
-
handshakes(integer) - 成功的 SSL 握手总数。
-
handshakes_failed(integer) - SSL 握手失败的总数。
-
session_reuses(integer) - SSL 握手期间会话重用的总数。
-
no_common_protocol(integer) - 由于没有通用协议而导致 SSL 握手失败的次数。
-
handshake_timeout(integer) - 由于超时而导致 SSL 握手失败的次数。
-
peer_rejected_cert(integer) - 当 nginx 向上游服务器提供证书但被拒绝并显示相应警报消息时,SSL 握手失败的次数。
-
verify_failures -
SSL 证书验证错误
-
expired_cert(integer) - 上游服务器提供了过期或尚未有效的证书。
-
revoked_cert(integer) - 上游服务器提供了已吊销的证书。
-
hostname_mismatch(integer) - 服务器的证书与主机名不匹配。
-
other(integer) - 其他 SSL 证书验证错误。
-
-
-
max_conns(integer) - 服务器的 max_conns 限制。
-
connections(integer) - 转发到此服务器的客户端连接总数。
-
connect_time(integer) - 连接到上游服务器的平均时间。
-
first_byte_time(integer) - 接收第一个数据字节的平均时间。
-
response_time(integer) - 接收最后一个数据字节的平均时间。
-
sent(integer) - 发送到该服务器的总字节数。
-
received(integer) - 从该服务器接收的总字节数。
-
fails(integer) - 尝试与服务器通信失败的总数。
-
unavail(integer) unavail由于不成功尝试次数达到max_fails阈值而导致 服务器无法用于客户端连接(状态“ ”)的次数。-
health_checks -
downtime(integer) -
服务器处于“
unavail”、“checking”和“unhealthy”状态的总时间。 -
downstart(string) unavail服务器变为“ ”、“checking”或“ ” 的时间unhealthy,采用 ISO 8601 格式,毫秒分辨率。-
selected(string) - 最后选择服务器处理连接的时间,采用 ISO 8601 格式,精度为毫秒。
-
-
zombies(integer) - 当前从组中删除但仍在处理活动客户端连接的服务器数量。
-
zone(string) - 保存组配置和运行时状态的 共享内存区域 的名称。
例子:
{ "dns" : { "peers" : [ { "id" : 0, "server" : "10.0.0.1:12347", "name" : "10.0.0.1:12347", "backup" : false, "weight" : 5, "state" : "up", "active" : 0, "ssl" : { "handshakes" : 200, "handshakes_failed" : 4, "session_reuses" : 189, "no_common_protocol" : 4, "handshake_timeout" : 0, "peer_rejected_cert" : 0, "verify_failures" : { "expired_cert" : 2, "revoked_cert" : 1, "hostname_mismatch" : 2, "other" : 1 } }, "max_conns" : 50, "connections" : 667231, "sent" : 251946292, "received" : 19222475454, "fails" : 0, "unavail" : 0, "health_checks" : { "checks" : 26214, "fails" : 0, "unhealthy" : 0, "last_passed" : true }, "downtime" : 0, "downstart" : "2022-06-28T11:09:21.602Z", "selected" : "2022-06-28T15:01:25.000Z" }, { "id" : 1, "server" : "10.0.0.1:12348", "name" : "10.0.0.1:12348", "backup" : true, "weight" : 1, "state" : "unhealthy", "active" : 0, "max_conns" : 50, "connections" : 0, "sent" : 0, "received" : 0, "fails" : 0, "unavail" : 0, "health_checks" : { "checks" : 26284, "fails" : 26284, "unhealthy" : 1, "last_passed" : false }, "downtime" : 262925617, "downstart" : "2022-06-28T11:09:21.602Z", "selected" : "2022-06-28T15:01:25.000Z" } ], "zombies" : 0, "zone" : "dns" } } -
-
流上游服务器:
流上游 服务器的动态可配置参数:-
id(integer) - 流上游服务器的ID。ID 是自动分配的且无法更改。
-
server(string) - 与流上游服务器的地址参数
相同。添加服务器时,可以将其指定为域名。在这种情况下,域名对应的IP地址的变化将被监控并自动应用于上游配置,而不需要重新启动nginx。这需要“ ”块中的解析器
stream指令。另请参阅流上游服务器的 解析参数。 -
service(string) - 与流上游服务器的服务参数 相同。该参数无法更改。
-
weight(integer) - 与流上游服务器的 权重参数 相同。
-
max_conns(integer) - 与流上游服务器的 max_conns参数 相同。
-
max_fails(integer) - 与流上游服务器的 max_fails参数 相同。
-
fail_timeout(string) - 与流上游服务器的 fail_timeout参数 相同。
-
slow_start(string) - 与流上游服务器的 slow_start参数 相同。
-
backup(boolean) -
时
true,添加备份服务器。该参数无法更改。 -
down(boolean) - 与流上游服务器的 down参数 相同。
-
parent(string) - 已解析服务器的父服务器 ID。ID 是自动分配的且无法更改。
-
host(string) - 已解析服务器的主机名。主机名是自动分配的且无法更改。
例子:
{ "id" : 0, "server" : "10.0.0.1:12348", "weight" : 1, "max_conns" : 0, "max_fails" : 1, "fail_timeout" : "10s", "slow_start" : 0, "backup" : false, "down" : false } -
-
流Keyval共享内存区域:
使用 GET 方法时流 keyval 共享内存区域的内容。例子:
{ "key1" : "value1", "key2" : "value2", "key3" : "value3" } -
流Keyval共享内存区域:
使用 POST 或 PATCH 方法时流 keyval 共享内存区域的内容。例子:
{ "key1" : "value1", "key2" : "value2", "key3" : { "value" : "value3", "expire" : 30000 } } -
流区同步节点:
-
zones -
每个共享内存区域的同步信息。
“同步区域”对象的集合
-
status -
集群中每个节点的同步信息。
-
bytes_in(integer) - 该节点接收到的字节数。
-
msgs_in(integer) - 该节点接收到的消息数。
-
msgs_out(integer) - 该节点发送的消息数。
-
bytes_out(integer) - 该节点发送的字节数。
-
nodes_online(integer) - 该节点连接到的对等点的数量。
-
例子:
{ "zones" : { "zone1" : { "records_pending" : 2061, "records_total" : 260575 }, "zone2" : { "records_pending" : 0, "records_total" : 14749 } }, "status" : { "bytes_in" : 1364923761, "msgs_in" : 337236, "msgs_out" : 346717, "bytes_out" : 1402765472, "nodes_online" : 15 } } -
-
同步区:
共享内存区域的同步状态。-
records_pending(integer) - 需要发送到集群的记录数。
-
records_total(integer) - 共享内存区域中存储的记录总数。
-
-
旋转变压器区:
每个特定解析器区域 的 DNS 请求和响应的统计信息 。-
requests -
-
name(integer) - 将名称解析为地址的请求总数。
-
srv(integer) - 解析 SRV 记录的请求总数。
-
addr(integer) - 将地址解析为名称的请求总数。
-
-
responses -
-
noerror(integer) - 成功响应的总数。
-
formerr(integer) -
FORMERR ( ) 响应的总数
Format error。 -
servfail(integer) -
SERVFAIL ( ) 响应的总数
Server failure。 -
nxdomain(integer) -
NXDOMAIN ( ) 响应总数
Host not found。 -
notimp(integer) -
NOTIMP ( ) 响应的总数
Unimplemented。 -
refused(integer) -
拒绝 ( ) 响应的总数
Operation refused。 -
timedout(integer) - 超时请求总数。
-
unknown(integer) - 已完成但存在未知错误的请求总数。
-
例子:
{ "resolver_zone1" : { "requests" : { "name" : 25460, "srv" : 130, "addr" : 2580 }, "responses" : { "noerror" : 26499, "formerr" : 0, "servfail" : 3, "nxdomain" : 0, "notimp" : 0, "refused" : 0, "timedout" : 243, "unknown" : 478 } } } -
-
工人进程:
每个工作进程的统计信息。-
id(integer) - 工作进程的 ID。
-
pid(integer) - 操作系统使用的工作进程的 PID 标识符。
-
connections -
每个工作进程接受、丢弃、活动和空闲连接的数量。
-
accepted(integer) - 工作进程接受的客户端连接总数。
-
dropped(integer) - 工作进程丢弃的客户端连接总数。
-
active(integer) - 当前由工作进程处理的活动客户端连接数。
-
idle(integer) - 当前由工作进程处理的空闲客户端连接数。
-
-
http -
-
requests -
工作进程处理的客户端请求总数。
-
total(integer) - 工作进程收到的客户端请求总数。
-
current(integer) - 当前工作进程正在处理的客户端请求数。
-
-
例子:
{ "id" : 0, "pid" : 32212, "connections" : { "accepted" : 1, "dropped" : 0, "active" : 1, "idle" : 0 }, "http" : { "requests" : { "total" : 15, "current" : 1 } } } -
-
错误:
nginx 错误对象。-
error -
-
status(integer) - HTTP 错误代码。
-
text(string) - 错误描述。
-
code(string) - 内部 nginx 错误代码。
-
-
request_id(string) - 请求的 ID 等于$request_id变量的值。
-
href(string) - 参考文档链接。
-
