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 |
在周围的 location 中启用 REST API 接口。应该 限制 对此 location 的访问。
write
参数确定 API 是只读还是读写。默认情况下,API 是只读的。
所有 API 请求都应在 URI 中包含支持的 API 版本。如果请求 URI 等于 location 前缀,则返回支持的 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 中。
在指定的 zone
中启用虚拟 http 或 stream 服务器状态信息的收集。多个服务器可以共享同一个 zone。
从 1.17.0 版本开始,状态信息可以按 location 进行收集。特殊值 off
禁用嵌套 location 块中的统计信息收集。请注意,统计信息是在处理结束的 location 上下文中收集的。如果请求处理期间发生 内部重定向,它可能与原始 location 不同。
兼容性
- /workers/ 数据在 版本 9 中添加。
- 详细的失败计数器在 版本 8 (1.23.2) 中添加到 SSL 统计信息中。
- 每个 HTTP upstream、server zone 和 stream upstream、server zone 的
ssl
数据在 版本 8 (1.21.6) 中添加。 - 每个 HTTP upstream、server zone 和 location zone 的
responses
中的codes
数据在 版本 7 中添加。 - /stream/limit_conns/ 数据在 版本 6 中添加。
- /http/limit_conns/ 数据在 版本 6 中添加。
- /http/limit_reqs/ 数据在 版本 6 中添加。
- 键值对 的 “
expire
” 参数可以从 版本 5 开始 设置 或 更改。 - /resolvers/ 数据在 版本 5 中添加。
- /http/location_zones/ 数据在 版本 5 中添加。
- nginx 错误对象 的
path
和method
字段在 版本 4 中删除。这些字段在早期 api 版本中继续存在,但显示为空值。 - /stream/zone_sync/ 数据在 版本 3 中添加。
- drain 参数在 版本 2 中添加。
- /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
- 重置slab统计信息重置每个内存槽的“
reqs
”和“fails
”指标。可能的响应:
-
-
/http/
-
支持的方法:
GET
- 返回HTTP相关端点列表返回第一级HTTP端点列表。
可能的响应:
- 200 - 成功,返回一个字符串数组
- 404 - 未知版本 (
UnknownVersion
),返回 错误
-
/http/requests
-
支持的方法:
-
/http/server_zones/
-
支持的方法:
GET
- 返回所有HTTP服务器区域的状态返回每个HTTP 服务器区域的状态信息。
请求参数:
-
fields
(string
, 可选) -
限制输出服务器区域的哪些字段。如果“
fields
”值为空,则仅输出服务器区域名称。
可能的响应:
- 200 - 成功,为所有HTTP服务器区域返回"HTTP 服务器区域"对象的集合
- 404 - 未知版本 (
UnknownVersion
),返回 错误
-
-
/http/server_zones/{httpServerZoneName}
-
所有方法的通用参数:
-
httpServerZoneName
(string
,必需) - HTTP 服务区域的名称。
支持的方法:
GET
- 返回 HTTP 服务区域的状态返回特定 HTTP 服务区域的状态。
请求参数:
-
fields
(string
,可选) - 限制服务区域的哪些字段将被输出。
可能的响应:
-
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
”值为空,则只会输出缓存区域的名称。
可能的响应:
-
-
/http/caches/{httpCacheZoneName}
-
所有方法的通用参数:
-
httpCacheZoneName
(string
,必需) - 缓存区域的名称。
支持的方法:
-
-
/http/limit_conns/
-
支持的方法:
GET
- 返回所有 HTTP limit_conn 区域的状态返回每个 HTTP limit_conn 区域的状态信息。
请求参数:
-
fields
(string
,可选) -
限制 limit_conn 区域的哪些字段将被输出。如果“
fields
”值为空,则只会输出区域名称。
可能的响应:
-
-
/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 limit reqs 的 "HTTP 请求速率限制" 对象集合
- 404 - 未知版本 (
UnknownVersion
),返回 错误
-
-
/http/limit_reqs/{httpLimitReqZoneName}
-
所有方法通用的参数:
-
httpLimitReqZoneName
(string
, 必填) - limit_req 区域的名称。
支持的方法:
GET
- 返回 HTTP limit_req 区域的状态返回特定 HTTP limit_req 区域的状态。
请求参数:
-
fields
(string
, 可选) - 限制要输出的 limit_req 区域 的字段。
可能的响应:
- 200 - 成功,返回 HTTP 请求速率限制
- 404 - 找不到 limit_req (
LimitReqNotFound
),未知版本 (UnknownVersion
),返回 错误
-
DELETE
- 重置 HTTP limit_req 区域的统计信息重置请求限制统计信息。
可能的响应:
-
-
/http/upstreams/
-
支持的方法:
-
/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区域的键值对返回每个HTTP keyval共享内存区域的键值对。
请求参数:
-
fields
(string
, 可选) -
如果“
fields
”值为空,则仅输出HTTP keyval区域名称。
可能的响应:
- 200 - 成功,返回所有HTTP keyvals的"HTTP Keyval共享内存区域"对象的集合
- 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 共享内存区域为空,则可以输入多个键值对。
请求参数:
-
键值对
(HTTP Keyval 共享内存区域, 必填) -
键值对以 JSON 格式指定。如果 HTTP keyval 共享内存区域为空,则可以输入多个键值对。可以使用
expire
参数为键值对指定过期时间(以毫秒为单位),这将覆盖 keyval_zone 指令的timeout
参数。
可能的响应:
- 201 - 已创建
- 400 - 无效的 JSON (
KeyvalFormatError
),无效的 key 格式 (KeyvalFormatError
),需要 key (KeyvalFormatError
),未启用 keyval 超时 (KeyvalFormatError
),只能添加一个 key (KeyvalFormatError
),读取请求正文失败BodyReadError
),返回 错误 - 404 - 找不到 Keyval (
KeyvalNotFound
),未知版本 (UnknownVersion
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 错误 - 409 - 条目已存在 (
EntryExists
),key 已存在 (KeyvalKeyExists
),返回 错误 - 413 - 请求实体过大,返回 错误
- 415 - JSON 错误 (
JsonError
),返回 错误
-
PATCH
- 修改键值对或删除键更改键值对中选定键的值,通过将键值设置为
null
来删除键,更改键值对的过期时间。如果在集群中启用了 keyval 区域的 同步,则仅在目标集群节点上删除键。可以使用expire
参数为键值对指定过期时间(以毫秒为单位),这将覆盖 keyval_zone 指令的timeout
参数。请求参数:
-
httpKeyvalZoneKeyValue
(HTTP Keyval 共享内存区域, 必填) - 键的新值以 JSON 格式指定。
可能的响应:
- 204 - 成功
- 400 - 无效的 JSON (
KeyvalFormatError
),需要 key (KeyvalFormatError
),未启用 keyval 超时 (KeyvalFormatError
),只能更新一个 key (KeyvalFormatError
),读取请求正文失败BodyReadError
),返回 错误 - 404 - 找不到 Keyval (
KeyvalNotFound
),找不到 keyval key (KeyvalKeyNotFound
),未知版本 (UnknownVersion
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 错误 - 413 - 请求实体过大,返回 错误
- 415 - JSON 错误 (
JsonError
),返回 错误
-
DELETE
- 清空 HTTP keyval 区域从 HTTP keyval 共享内存 区域 中删除所有键值对。如果在集群中启用了 keyval 区域的 同步,则仅在目标集群节点上清空 keyval 区域。
可能的响应:
-
-
/stream/
-
支持的方法:
GET
- 返回与 stream 相关的端点列表返回第一级 stream 端点列表。
可能的响应:
- 200 - 成功,返回字符串数组
- 404 - 未知版本 (
UnknownVersion
),返回 错误
-
/stream/server_zones/
-
支持的方法:
GET
- 返回所有 stream 服务器区域的状态返回每个 stream 服务器区域 的状态信息。
请求参数:
-
fields
(string
, 可选) -
限制将输出服务器区域的哪些字段。如果“
fields
”值为空,则仅输出服务器区域名称。
可能的响应:
- 200 - 成功,为所有 stream 服务器区域返回 "Stream 服务器区域" 对象的集合
- 404 - 未知版本 (
UnknownVersion
),返回 错误
-
-
/stream/server_zones/{streamServerZoneName}
-
所有方法的通用参数:
-
streamServerZoneName
(string
, 必填) - stream 服务器区域的名称。
支持的方法:
GET
- 返回 stream 服务器区域的状态返回特定 stream 服务器区域的状态。
请求参数:
-
fields
(string
, 可选) - 限制将输出服务器区域的哪些字段。
可能的响应:
- 200 - 成功,返回 Stream 服务器区域
- 404 - 找不到服务器区域 (
ServerZoneNotFound
),未知版本 (UnknownVersion
),返回 错误
-
DELETE
- 重置 stream 服务器区域的统计信息重置特定 stream 服务器区域中已接受和已丢弃连接、会话、已接收和已发送字节、SSL 握手和会话重用计数器的统计信息。
可能的响应:
-
-
/stream/limit_conns/
-
支持的方法:
GET
- 返回所有流 limit_conn 区域的状态返回每个流 limit_conn 区域的状态信息。
请求参数:
-
fields
(string
, 可选) -
限制将输出 limit_conn 区域的哪些字段。如果“
fields
”值为空,则仅输出区域名称。
可能的响应:
-
-
/stream/limit_conns/{streamLimitConnZoneName}
-
所有方法通用的参数:
-
streamLimitConnZoneName
(string
, 必填) - limit_conn 区域的名称。
支持的方法:
GET
- 返回流 limit_conn 区域的状态返回特定流 limit_conn 区域的状态。
请求参数:
-
fields
(string
, 可选) - 限制将输出 limit_conn 区域的哪些字段。
可能的响应:
-
DELETE
- 重置流 limit_conn 区域的统计信息重置连接限制统计信息。
可能的响应:
-
-
/stream/upstreams/
-
支持的方法:
-
/stream/upstreams/{streamUpstreamName}/
-
所有方法通用的参数:
-
streamUpstreamName
(string
, 必填) - 流上游服务器组的名称。
支持的方法:
GET
- 返回流上游服务器组的状态返回特定流上游服务器组及其服务器的状态。
请求参数:
-
fields
(string
, 可选) - 限制将输出上游服务器组的哪些字段。
可能的响应:
-
DELETE
- 重置流上游服务器组的统计信息重置上游服务器组中每个上游服务器的统计信息。
可能的响应:
-
-
/stream/upstreams/{streamUpstreamName}/servers/
-
所有方法通用的参数:
-
streamUpstreamName
(string
, 必填) - 上游服务器组的名称。
支持的方法:
GET
- 返回流上游服务器组中所有服务器的配置返回特定流上游服务器组中每个服务器的配置。
可能的响应:
POST
- 将服务器添加到流上游服务器组将新服务器添加到流上游服务器组。服务器参数以 JSON 格式指定。
请求参数:
-
postStreamUpstreamServer
(流上游服务器, 必填) -
新服务器的地址和其他可选参数,采用 JSON 格式。“
ID
”、“backup
”和“service
”参数无法更改。
可能的响应:
- 201 - 已创建,返回 流上游服务器
- 400 - 上游服务器是静态的 (
UpstreamStatic
), 无效的“parameter
”值 (UpstreamConfFormatError
), 缺少“server
”参数 (UpstreamConfFormatError
), 未知的参数“name
” (UpstreamConfFormatError
), 嵌套对象或列表 (UpstreamConfFormatError
), 解析时出现“error
” (UpstreamBadAddress
), 服务器“host
”中没有端口 (UpstreamBadAddress
), 服务上游服务器“host
”可能没有端口 (UpstreamBadAddress
), 服务上游服务器“host
”需要域名 (UpstreamBadAddress
), 无效的“weight
” (UpstreamBadWeight
), 无效的“max_conns
” (UpstreamBadMaxConns
), 无效的“max_fails
” (UpstreamBadMaxFails
), 无效的“fail_timeout
” (UpstreamBadFailTimeout
), 无效的“slow_start
” (UpstreamBadSlowStart
), “service
”为空 (UpstreamBadService
), 没有定义解析器来解析 (UpstreamConfNoResolver
), 上游服务器“name
”没有备份 (UpstreamNoBackup
), 上游服务器“name
”内存耗尽 (UpstreamOutOfMemory
), 读取请求正文失败BodyReadError
), 返回 错误 - 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_conns
”无效 (UpstreamBadMaxConns
),“max_fails
”无效 (UpstreamBadMaxFails
),“fail_timeout
”无效 (UpstreamBadFailTimeout
),“slow_start
”无效 (UpstreamBadSlowStart
),读取请求正文失败BodyReadError
),“service
”为空 (UpstreamBadService
),服务器“ID
”地址不可变 (UpstreamServerImmutable
),服务器“ID
”权重不可变 (UpstreamServerWeightImmutable
),上游“name
”内存耗尽 (UpstreamOutOfMemory
),返回 错误 - 404 - ID 为“
id
”的服务器不存在 (UpstreamServerNotFound
),未知版本 (UnknownVersion
),上游未找到 (UpstreamNotFound
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 错误 - 415 - JSON 错误 (
JsonError
),返回 错误
-
DELETE
- 从流上游服务器组中删除服务器从流服务器组中删除服务器。
可能的响应:
-
-
/stream/keyvals/
-
支持的方法:
-
/stream/keyvals/{streamKeyvalZoneName}
-
所有方法的通用参数:
-
streamKeyvalZoneName
(字符串
,必需) - 流键值共享内存区的名称。
支持的方法:
GET
- 从流键值区域返回键值对返回存储在特定流键值共享内存区域中的键值对。
请求参数:
-
key
(字符串
,可选) - 从流键值区域获取特定的键值对。
可能的响应:
-
POST
- 向流键值区域添加键值对向流键值共享内存区域添加新的键值对。如果流键值共享内存区域为空,则可以输入多个键值对。
请求参数:
-
键值
(流键值共享内存区域,必需) -
键值对以 JSON 格式指定。如果流键值共享内存区域为空,则可以输入多个键值对。可以使用
expire
参数为键值对指定过期时间(以毫秒为单位),该参数会覆盖 keyval_zone 指令的timeout
参数。
可能的响应:
- 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_zone 指令的timeout
参数。请求参数:
-
streamKeyvalZoneKeyValue
(流键值共享内存区域,必需) - 键的新值以 JSON 格式指定。
可能的响应:
- 204 - 成功
- 400 - 无效的 JSON (
KeyvalFormatError
),需要键 (KeyvalFormatError
),未启用键值超时 (KeyvalFormatError
),只能更新一个键 (KeyvalFormatError
),读取请求正文失败 (BodyReadError
)),返回 错误 - 404 - 键值未找到 (
KeyvalNotFound
),键值键未找到 (KeyvalKeyNotFound
),未知版本 (UnknownVersion
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 错误 - 413 - 请求实体过大,返回 错误
- 415 - JSON 错误 (
JsonError
),返回 错误
-
DELETE
- 清空流键值区域从流键值共享内存区域中删除所有键值对。如果在集群中启用了键值区域的 同步,则仅在目标集群节点上清空键值区域。
可能的响应:
-
-
/stream/zone_sync/
-
支持的方法:
-
/resolvers/
-
支持的方法:
-
/resolvers/{resolverZoneName}
-
所有方法的通用参数:
-
resolverZoneName
(字符串
,必需) - 解析器区域的名称。
支持的方法:
GET
- 返回解析器区域的统计信息返回存储在特定解析器 区域 中的统计信息。
请求参数:
-
fields
(字符串
,可选) - 限制输出解析器区域的哪些字段(请求、响应或两者)。
可能的响应:
-
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 等)
“内存槽”对象的集合
例子:
{ "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
) - 在 dry run 模式下被视为拒绝的连接总数。
示例:
{ "passed" : 15, "rejected" : 0, "rejected_dry_run" : 2 }
-
-
HTTP 请求速率限制:
-
passed
(integer
) - 既没有被限制也没有被视为限制的请求总数。
-
delayed
(integer
) - 被延迟的请求总数。
-
rejected
(integer
) - 被拒绝的请求总数。
-
delayed_dry_run
(integer
) - 在 dry run 模式下被视为延迟的请求总数。
-
rejected_dry_run
(integer
) - 在 dry run 模式下被视为拒绝的请求总数。
示例:
{ "passed" : 15, "delayed" : 4, "rejected" : 0, "delayed_dry_run" : 1, "rejected_dry_run" : 2 }
-
-
HTTP 上游:
-
peers
-
一个包含以下内容的数组:
-
id
(integer
) - 服务器的 ID。
-
server
(string
) - 服务器的地址。
-
service
(string
) - server 指令中 service 参数的值。
-
name
(string
) - 在 server 指令中指定的服务器名称。
-
backup
(boolean
) - 一个布尔值,指示服务器是否为 backup 服务器。
-
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
) -
由于失败次数达到 max_fails 阈值,服务器对客户端请求不可用(状态为“
unavail
”)的次数。 -
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
) - 当前空闲的 keepalive 连接数。
-
zombies
(integer
) - 已从组中删除但仍在处理活动客户端请求的服务器的当前数量。
-
zone
(string
) - 共享内存 zone 的名称,该区域保存组的配置和运行时状态。
-
queue
-
对于请求 queue,提供以下数据:
-
size
(integer
) - 队列中当前的请求数。
-
max_size
(integer
) - 可以同时在队列中的最大请求数。
-
overflows
(integer
) - 由于队列溢出而被拒绝的请求总数。
-
例子:
{ "上游后端" : { "节点" : [ { "id" : 0, "服务器" : "10.0.0.1:8088", "名称" : "10.0.0.1:8088", "备份" : false, "权重" : 5, "状态" : "up", "活跃" : 0, "ssl" : { "握手" : 620311, "握手失败" : 3432, "会话重用" : 36442, "无通用协议" : 4, "握手超时" : 0, "节点拒绝证书" : 0, "验证失败" : { "过期证书" : 2, "吊销证书" : 1, "主机名不匹配" : 2, "其他" : 1 } }, "最大连接数" : 20, "请求数" : 667231, "头部时间" : 20, "响应时间" : 36, "响应" : { "1xx" : 0, "2xx" : 666310, "3xx" : 0, "4xx" : 915, "5xx" : 6, "代码" : { "200" : 666310, "404" : 915, "503" : 6 }, "总数" : 667231 }, "发送" : 251946292, "接收" : 19222475454, "失败" : 0, "不可用" : 0, "健康检查" : { "检查" : 26214, "失败" : 0, "不健康" : 0, "上次通过" : true }, "停机时间" : 0, "停机开始" : "2022-06-28T11:09:21.602Z", "选择" : "2022-06-28T15:01:25.000Z" }, { "id" : 1, "服务器" : "10.0.0.1:8089", "名称" : "10.0.0.1:8089", "备份" : true, "权重" : 1, "状态" : "不健康", "活跃" : 0, "最大连接数" : 20, "请求数" : 0, "响应" : { "1xx" : 0, "2xx" : 0, "3xx" : 0, "4xx" : 0, "5xx" : 0, "代码" : { }, "总数" : 0 }, "发送" : 0, "接收" : 0, "失败" : 0, "不可用" : 0, "健康检查" : { "检查" : 26284, "失败" : 26284, "不健康" : 1, "上次通过" : false }, "停机时间" : 262925617, "停机开始" : "2022-06-28T11:09:21.602Z", "选择" : "2022-06-28T15:01:25.000Z" } ], "保持活动" : 0, "僵尸" : 0, "区域" : "upstream_backend" } }
-
-
HTTP 上游服务器:
HTTP 上游 服务器 的动态可配置参数:-
id
(integer
) - HTTP 上游服务器的 ID。ID 是自动分配的,不能更改。
-
server
(string
) -
与 HTTP 上游服务器的 地址 参数相同。添加服务器时,可以将其指定为域名。在这种情况下,将监控与域名对应的 IP 地址的变化,并自动将其应用于上游配置,而无需重新启动 nginx。这需要在 “
http
” 块中使用 resolver 指令。另请参阅 HTTP 上游服务器的 resolve 参数。 -
service
(string
) - 与 HTTP 上游服务器的 service 参数相同。此参数不能更改。
-
weight
(integer
) - 与 HTTP 上游服务器的 weight 参数相同。
-
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 上游服务器的 route 参数相同。
-
backup
(boolean
) -
当值为
true
时,添加一个 backup 服务器。此参数不能更改。 -
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 } }
-
Stream 服务器区域:
-
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 } } } }
-
-
Stream 连接限制:
-
passed
(integer
) - 既未受限也未被计为受限的连接总数。
-
rejected
(integer
) - 被拒绝的连接总数。
-
rejected_dry_run
(integer
) - 在 dry run 模式下被计为拒绝的连接总数。
示例:
{ "passed" : 15, "rejected" : 0, "rejected_dry_run" : 2 }
-
-
流上游:
-
peers
-
一个包含以下内容的数组:
-
id
(integer
) - 服务器的ID。
-
server
(string
) - 服务器的地址。
-
service
(string
) - server 指令的 service 参数值。
-
name
(string
) - 在 server 指令中指定的服务器名称。
-
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向upstream服务器显示证书,但被相应的警告消息拒绝时,SSL握手失败的次数。
-
verify_failures
-
SSL证书验证错误
-
expired_cert
(integer
) - upstream服务器显示的证书已过期或尚未生效。
-
revoked_cert
(integer
) - upstream服务器显示的证书已被吊销。
-
hostname_mismatch
(integer
) - 服务器的证书与主机名不匹配。
-
other
(integer
) - 其他SSL证书验证错误。
-
-
-
max_conns
(integer
) - 服务器的max_conns限制。
-
connections
(integer
) - 转发到此服务器的客户端连接总数。
-
connect_time
(integer
) - 连接到upstream服务器的平均时间。
-
first_byte_time
(integer
) - 接收第一个数据字节的平均时间。
-
response_time
(integer
) - 接收最后一个数据字节的平均时间。
-
sent
(integer
) - 发送到此服务器的总字节数。
-
received
(integer
) - 从此服务器接收的总字节数。
-
fails
(integer
) - 与服务器通信失败的总次数。
-
unavail
(integer
) -
由于失败尝试次数达到max_fails阈值,服务器变为对客户端连接不可用(状态“
unavail
”)的次数。 -
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
”块中使用 resolver 指令。另请参阅流上游服务器的 resolve 参数。 -
service
(string
) - 与流上游服务器的 service 参数相同。此参数无法更改。
-
weight
(integer
) - 与流上游服务器的 weight 参数相同。
-
max_conns
(integer
) - 与流上游服务器的 max_conns 参数相同。
-
max_fails
(integer
) - 与流上游服务器的 max_fails 参数相同。
-
fail_timeout
(string
) - 与流上游服务器的 fail_timeout 参数相同。
-
slow_start
(string
) - 与流上游服务器的 slow_start 参数相同。
-
backup
(boolean
) -
当为
true
时,添加一个 backup 服务器。此参数无法更改。 -
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 }
-
-
流键值共享内存区域:
使用 GET 方法时,流键值共享内存区域的内容。例子:
{ "key1" : "value1", "key2" : "value2", "key3" : "value3" }
-
流键值共享内存区域:
使用 POST 或 PATCH 方法时,流键值共享内存区域的内容。例子:
{ "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(
格式错误
)响应的总数。 -
servfail
(integer
) -
SERVFAIL(
服务器故障
)响应的总数。 -
nxdomain
(integer
) -
NXDOMAIN(
找不到主机
)响应的总数。 -
notimp
(integer
) -
NOTIMP(
未实现
)响应的总数。 -
refused
(integer
) -
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
) - 操作系统使用的 worker 进程的 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
) - 指向参考文档的链接。
-