模块 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 [ |
---|---|
默认值 | — |
上下文 |
位置 |
启用周围位置中的 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 版本中。
启用在指定的 zone
中收集虚拟 http 或 stream 服务器状态信息。多个服务器可能共享同一个区域。
从 1.17.0 开始,可以按 location 收集状态信息。特殊值 off
禁用嵌套 location 块中的统计信息收集。请注意,统计信息是在处理结束的 location 的上下文中收集的。如果在请求处理期间发生 内部重定向,则它可能与原始 location 不同。
兼容性
- 在 版本 9 中添加了 /workers/ 数据。
- 在 版本 8 (1.23.2) 中将详细故障计数器添加到 SSL 统计信息中。
-
在 版本 8 (1.21.6) 中添加了每个 HTTP 上游、服务器区域 和流 上游、服务器区域 的
ssl
数据。 -
在 版本 7 中添加了每个 HTTP 上游、服务器区域 和 location 区域 的
responses
中的codes
数据。 - 在 版本 6 中添加了 /stream/limit_conns/ 数据。
- 在 版本 6 中添加了 /http/limit_conns/ 数据。
- 在 版本 6 中添加了 /http/limit_reqs/ 数据。
-
自 版本 5 起,可以 设置 或 更改 键值 对的“
expire
”参数。 - 在 版本 5 中添加了 /resolvers/ 数据。
- 在 版本 5 中添加了 /http/location_zones/ 数据。
-
path
和method
字段已在 版本 4 中的 nginx 错误对象 中移除。这些字段在较早的 API 版本中仍然存在,但会显示一个空值。 -
/stream/zone_sync/
数据已在 版本 3 中添加。 -
drain
参数已在 版本 2 中添加。 -
/stream/keyvals/
数据已在 版本 2 中添加。
端点
-
/
-
支持的方法
-
GET
- 返回根端点列表返回根端点列表。
可能的响应
- 200 - 成功,返回一个字符串数组
- 404 - 未知版本 (
UnknownVersion
),返回 Error
-
-
/nginx
-
支持的方法
-
/processes
-
支持的方法
-
/connections
-
支持的方法
-
GET
- 返回客户端连接统计信息返回客户端连接的统计信息。
请求参数
fields
(string
,可选)- 限制将输出哪些连接统计字段。
可能的响应
- 200 - 成功,返回 Connections
- 404 - 未知版本 (
UnknownVersion
),返回 Error
-
DELETE
- 重置客户端连接统计信息重置已接受和已丢弃客户端连接的统计信息。
可能的响应
-
-
/slabs/
-
支持的方法
-
GET
- 返回所有 slab 的状态返回使用 slab 分配器的每个共享内存区域的 slab 状态。
请求参数
fields
(string
,可选)-
限制将输出哪些 slab 区域字段。如果“
fields
”值为“空”,则只输出区域名称。
可能的响应
- 200 - 成功,返回所有 slab 的“带 slab 分配器的共享内存区域”对象集合
- 404 - 未知版本 (
UnknownVersion
),返回 Error
-
-
/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
),返回 Error
-
-
/http/requests
-
支持的方法
-
/http/server_zones/
-
支持的方法
-
GET
- 返回所有 HTTP 服务器区域的状态返回每个 HTTP 服务器区域的状态信息。
请求参数
fields
(string
,可选)-
限制输出服务器区域的哪些字段。如果“
fields
”值为空,则只输出服务器区域名称。
可能的响应
- 200 - 成功,返回所有 HTTP 服务器区域的“HTTP 服务器区域”对象集合
- 404 - 未知版本 (
UnknownVersion
),返回 Error
-
-
/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
”值为空,则只输出缓存区域的名称。
可能的响应
-
-
/http/caches/{httpCacheZoneName}
-
所有方法的通用参数
httpCacheZoneName
(字符串
,必需)- 缓存区域的名称。
支持的方法
-
/http/limit_conns/
-
支持的方法
-
GET
- 返回所有 HTTP limit_conn 区域的状态返回每个 HTTP limit_conn 区域 的状态信息。
请求参数
fields
(string
,可选)-
限制输出 limit_conn 区域的哪些字段。如果“
fields
”值为空,则只输出区域名称。
可能的响应
-
-
/http/limit_conns/{httpLimitConnZoneName}
-
所有方法的通用参数
httpLimitConnZoneName
(字符串
,必需)- 一个 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 req 的“HTTP 请求速率限制”对象集合
- 404 - 未知版本 (
UnknownVersion
),返回 Error
-
-
/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
),无效的“参数
”值 (UpstreamConfFormatError
),缺少“server
”参数 (UpstreamConfFormatError
),未知参数“名称
” (UpstreamConfFormatError
),嵌套对象或列表 (UpstreamConfFormatError
),解析时“错误
” (UpstreamBadAddress
),服务上游“host
”可能没有端口 (UpstreamBadAddress
),服务上游“host
”需要域名 (UpstreamBadAddress
),无效的“weight
” (UpstreamBadWeight
),无效的“max_conns
” (UpstreamBadMaxConns
),无效的“max_fails
” (UpstreamBadMaxFails
),无效的“fail_timeout
” (UpstreamBadFailTimeout
),无效的“slow_start
” (UpstreamBadSlowStart
),读取请求正文失败BodyReadError
),路由太长 (UpstreamBadRoute
),“service
”为空 (UpstreamBadService
),没有定义解析器来解析 (UpstreamConfNoResolver
),上游“名称
”没有备份 (UpstreamNoBackup
),上游“名称
”内存耗尽 (UpstreamOutOfMemory
),返回 错误 - 404 - 未知版本 (
UnknownVersion
),未找到上游 (UpstreamNotFound
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 Error - 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
),返回 Error - 415 - JSON 错误 (
JsonError
),返回 错误
-
DELETE
- 从 HTTP 上游服务器组中删除服务器从 HTTP 上游服务器组中删除服务器。
可能的响应
- 200 - 成功,返回 HTTP 上游服务器 数组
- 400 - 上游是静态的 (
UpstreamStatic
),无效的服务器 ID (UpstreamBadServerId
),服务器 “id
” 不可删除 (UpstreamServerImmutable
),返回 错误 - 404 - ID 为 “
id
” 的服务器不存在 (UpstreamServerNotFound
),未知版本 (UnknownVersion
),未找到上游 (UpstreamNotFound
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 Error
-
/http/keyvals/
-
支持的方法
-
GET
- 返回所有 HTTP keyval 区域中的键值对返回每个 HTTP keyval 共享内存 区域 的键值对。
请求参数
fields
(string
,可选)-
如果“
fields
”值为空,则只输出 HTTP keyval 区域名称。
可能的响应
- 200 - 成功,返回所有 HTTP keyval 的“HTTP Keyval 共享内存区域”对象集合
- 404 - 未知版本 (
UnknownVersion
),返回 Error
-
-
/http/keyvals/{httpKeyvalZoneName}
-
所有方法的通用参数
httpKeyvalZoneName
(string
,必需)- HTTP keyval 共享内存区域的名称。
支持的方法
-
GET
- 从 HTTP keyval 区域返回键值对返回存储在特定 HTTP keyval 共享内存 区域 中的键值对。
请求参数
key
(string
,可选)- 从 HTTP keyval 区域获取特定的键值对。
可能的响应
- 200 - 成功,返回 HTTP Keyval 共享内存区域
- 404 - 未找到 Keyval(
KeyvalNotFound
),未找到 keyval 键(KeyvalKeyNotFound
),版本未知(UnknownVersion
),返回 错误
-
POST
- 向 HTTP keyval 区域添加键值对向 HTTP keyval 共享内存 区域 添加新的键值对。如果 HTTP keyval 共享内存区域为空,则可以输入多个键值对。
请求参数
Key-value
(HTTP Keyval 共享内存区域,必需)-
键值对以 JSON 格式指定。如果 HTTP keyval 共享内存区域为空,则可以输入多个键值对。可以使用
expire
参数为键值对指定到期时间(毫秒),该参数会覆盖timeout
keyval_zone 指令的参数。
可能的响应
- 201 - 已创建
- 400 - JSON 无效(
KeyvalFormatError
),键格式无效(KeyvalFormatError
),需要键(KeyvalFormatError
),未启用 keyval 超时(KeyvalFormatError
),只能添加一个键(KeyvalFormatError
),读取请求正文失败BodyReadError
),返回 错误 - 404 - 未找到 Keyval(
KeyvalNotFound
),版本未知(UnknownVersion
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 Error - 409 - 条目已存在(
EntryExists
),键已存在(KeyvalKeyExists
),返回 错误 - 413 - 请求实体太大,返回 错误
- 415 - JSON 错误 (
JsonError
),返回 错误
-
PATCH
- 修改键值或删除键更改键值对中所选键的值,通过将键值设为
null
删除键,更改键值对的过期时间。如果在集群中启用了键值区域的同步,则仅在目标集群节点上删除键。键值对的过期时间(以毫秒为单位)可以通过expire
参数指定,该参数会覆盖timeout
keyval_zone 指令的参数。请求参数
httpKeyvalZoneKeyValue
(HTTP Keyval 共享内存区域,必需)- 以 JSON 格式指定键的新值。
可能的响应
- 204 - 成功
- 400 - 无效的 JSON(
KeyvalFormatError
),必需的键(KeyvalFormatError
),未启用 keyval 超时(KeyvalFormatError
),只能更新一个键(KeyvalFormatError
),读取请求正文失败BodyReadError
),返回 错误 - 404 - 未找到 Keyval(
KeyvalNotFound
),未找到 keyval 键(KeyvalKeyNotFound
),版本未知(UnknownVersion
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 Error - 413 - 请求实体太大,返回 错误
- 415 - JSON 错误 (
JsonError
),返回 错误
-
DELETE
- 清空 HTTP keyval 区域从 HTTP keyval 共享内存 区域中删除所有键值对。如果在集群中启用了键值区域的同步,则仅在目标集群节点上清空 keyval 区域。
可能的响应
-
/stream/
-
支持的方法
-
GET
- 返回流相关端点的列表返回一级流端点的列表。
可能的响应
- 200 - 成功,返回一个字符串数组
- 404 - 未知版本 (
UnknownVersion
),返回 Error
-
-
/stream/server_zones/
-
支持的方法
-
/stream/server_zones/{streamServerZoneName}
-
所有方法的通用参数
streamServerZoneName
(string
,必需)- 流服务器区域的名称。
支持的方法
-
GET
- 返回流服务器区域的状态返回特定流服务器区域的状态。
请求参数
fields
(string
,可选)- 限制输出服务器区域的哪些字段。
可能的响应
-
DELETE
- 重置流服务器区域的统计信息重置特定流服务器区域中已接受和已丢弃的连接、会话、已接收和已发送的字节、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
),无效的“参数
”值 (UpstreamConfFormatError
),缺少“server
”参数 (UpstreamConfFormatError
),未知参数“名称
” (UpstreamConfFormatError
),嵌套对象或列表 (UpstreamConfFormatError
),解析时“错误
” (UpstreamBadAddress
),服务器“主机
”中没有端口 (UpstreamBadAddress
),服务上游“主机
”可能没有端口 (UpstreamBadAddress
),服务上游“主机
”需要域名 (UpstreamBadAddress
),无效的“权重
” (UpstreamBadWeight
),无效的“max_conns
” (UpstreamBadMaxConns
),无效的“max_fails
” (UpstreamBadMaxFails
),无效的“fail_timeout
” (UpstreamBadFailTimeout
),无效的“slow_start
” (UpstreamBadSlowStart
),“服务
”为空 (UpstreamBadService
),没有定义解析器来解析 (UpstreamConfNoResolver
),上游“名称
”没有备份 (UpstreamNoBackup
),上游“名称
”内存耗尽 (UpstreamOutOfMemory
),读取请求正文失败BodyReadError
),返回 错误 - 404 - 未知版本 (
UnknownVersion
),未找到上游 (UpstreamNotFound
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 Error - 409 - 条目已存在 (
EntryExists
),返回 错误 - 415 - JSON 错误 (
JsonError
),返回 错误
-
/stream/upstreams/{streamUpstreamName}/servers/{streamUpstreamServerId}
-
所有方法的通用参数
streamUpstreamName
(string
,必需)- 上游服务器组的名称。
streamUpstreamServerId
(字符串
,必需)- 服务器的 ID。
支持的方法
-
GET
- 返回流上游服务器组中服务器的配置返回流上游服务器组中特定服务器的配置。
可能的响应
-
PATCH
- 修改流上游服务器组中的服务器修改流上游服务器组中特定服务器的设置。服务器参数以 JSON 格式指定。
请求参数
patchStreamUpstreamServer
(流上游服务器,必需)-
以 JSON 格式指定的服务器参数。“
ID
”、“backup
”和“service
”参数不能更改。
可能的响应
- 200 - 成功,返回 流上游服务器
- 400 - 上游为静态 (
UpstreamStatic
),无效的“参数
”值 (UpstreamConfFormatError
),未知参数“名称
” (UpstreamConfFormatError
),嵌套对象或列表 (UpstreamConfFormatError
),解析时“错误
” (UpstreamBadAddress
),无效的“服务器
”参数 (UpstreamBadAddress
),服务器“主机
”中没有端口 (UpstreamBadAddress
),无效的服务器 ID (UpstreamBadServerId
),无效的“权重
” (UpstreamBadWeight
),无效的“max_conns
” (UpstreamBadMaxConns
),无效的“max_fails
” (UpstreamBadMaxFails
),无效的“fail_timeout
” (UpstreamBadFailTimeout
),无效的“slow_start
” (UpstreamBadSlowStart
),读取请求正文失败BodyReadError
),“服务
”为空 (UpstreamBadService
),服务器“ID
”地址不可变 (UpstreamServerImmutable
),服务器“ID
”权重不可变 (UpstreamServerWeightImmutable
),上游“名称
”内存已用尽 (UpstreamOutOfMemory
),返回 错误 - 404 - ID 为 “
id
” 的服务器不存在 (UpstreamServerNotFound
),未知版本 (UnknownVersion
),未找到上游 (UpstreamNotFound
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 Error - 415 - JSON 错误 (
JsonError
),返回 错误
-
DELETE
- 从流上游服务器组中移除服务器从流服务器组中移除服务器。
可能的响应
-
/stream/keyvals/
-
支持的方法
-
GET
- 从所有流 keyval 区域返回键值对为每个流 keyval 共享内存 区域 返回键值对。
请求参数
fields
(string
,可选)-
如果“
字段
”值为空,则只输出流 keyval 区域名称。
可能的响应
- 200 - 成功,为所有流 keyval 返回“流 Keyval 共享内存区域”对象集合
- 404 - 未知版本 (
UnknownVersion
),返回 Error
-
-
/stream/keyvals/{streamKeyvalZoneName}
-
所有方法的通用参数
streamKeyvalZoneName
(字符串
,必需)- 流 keyval 共享内存区域的名称。
支持的方法
-
GET
- 从流 keyval 区域返回键值对从特定流 keyval 共享内存 区域 中存储的键值对。
请求参数
key
(string
,可选)- 从流 keyval 区域获取特定键值对。
可能的响应
- 200 - 成功,返回 流 Keyval 共享内存区域
- 404 - 未找到 Keyval(
KeyvalNotFound
),未找到 keyval 键(KeyvalKeyNotFound
),版本未知(UnknownVersion
),返回 错误
-
POST
- 向流 keyval 区域添加键值对向流 keyval 共享内存 区域 添加新的键值对。如果流 keyval 共享内存区域为空,则可以输入多个键值对。
请求参数
键值
(流 Keyval 共享内存区域,必需)-
键值对以 JSON 格式指定。如果流 keyval 共享内存区域为空,则可以输入多个键值对。可以使用
expire
参数为键值对指定到期时间(以毫秒为单位),该参数会覆盖timeout
keyval_zone 指令的参数。
可能的响应
- 201 - 已创建
- 400 - JSON 无效(
KeyvalFormatError
),键格式无效(KeyvalFormatError
),需要键(KeyvalFormatError
),未启用 keyval 超时(KeyvalFormatError
),只能添加一个键(KeyvalFormatError
),读取请求正文失败BodyReadError
),返回 错误 - 404 - 未找到 Keyval(
KeyvalNotFound
),版本未知(UnknownVersion
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 Error - 409 - 条目已存在(
EntryExists
),键已存在(KeyvalKeyExists
),返回 错误 - 413 - 请求实体太大,返回 错误
- 415 - JSON 错误 (
JsonError
),返回 错误
-
PATCH
- 修改键值或删除键更改键值对中所选键的值,通过将键值设置为
null
来删除键,更改键值对的到期时间。如果启用了集群中 keyval 区域的 同步,则只在目标集群节点上删除键。使用expire
参数以毫秒为单位指定到期时间,该参数会覆盖timeout
keyval_zone 指令的参数。请求参数
streamKeyvalZoneKeyValue
(流 Keyval 共享内存区域,必需)- 以 JSON 格式指定键的新值。
可能的响应
- 204 - 成功
- 400 - 无效的 JSON(
KeyvalFormatError
),必需的键(KeyvalFormatError
),未启用 keyval 超时(KeyvalFormatError
),只能更新一个键(KeyvalFormatError
),读取请求正文失败BodyReadError
),返回 错误 - 404 - 未找到 Keyval(
KeyvalNotFound
),未找到 keyval 键(KeyvalKeyNotFound
),版本未知(UnknownVersion
),返回 错误 - 405 - 方法已禁用 (
MethodDisabled
),返回 Error - 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 握手的总数。
-
握手失败
(整数
) - SSL 握手失败的总数。
-
会话重用
(整数
) - SSL 握手期间会话重用的总数。
-
无通用协议
(整数
) - 由于没有通用协议而导致 SSL 握手失败的次数。
-
无通用密码
(整数
) - 由于没有共享密码而导致 SSL 握手失败的次数。
-
握手超时
(整数
) - 由于超时而导致 SSL 握手失败的次数。
-
对等方拒绝证书
(整数
) - 当 nginx 向客户端出示证书但被拒绝并伴有相应的警报消息时,SSL 握手失败的次数。
-
验证失败
-
SSL 证书验证错误
-
无证书
(整数
) - 客户端未提供所需的证书。
-
证书过期
(整数
) - 客户端出示了已过期或尚未生效的证书。
-
证书吊销
(整数
) - 客户端出示了已吊销的证书。
-
主机名不匹配
(整数
) - 服务器证书与主机名不匹配。
-
其他
(整数
) - 其他 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 分配器的共享内存区域-
页面
-
空闲和已使用的内存页数。
-
已使用
(整数
) - 当前已使用内存页数。
-
空闲
(整数
) - 当前空闲内存页数。
-
-
槽
-
内存槽的状态数据(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 } } }
-
-
内存槽
-
已使用
(整数
) - 当前已使用内存槽数。
-
空闲
(整数
) - 当前空闲内存槽数。
-
请求
(整数
) - 尝试分配指定大小内存的总数。
-
失败
(整数
) - 尝试分配指定大小内存的失败次数。
-
-
HTTP 请求
-
总计
(整数
) - 客户端请求的总数。
-
当前
(整数
) - 客户端请求的当前数。
示例
{ "total" : 10624511, "current" : 4 }
-
-
HTTP 服务器区域
-
处理中
(整数
) - 当前正在处理的客户端请求数。
-
请求
(整数
) - 从客户端收到的客户端请求总数。
-
响应
-
发送给客户端的响应总数,“
1xx
”、“2xx
”、“3xx
”、“4xx
”和“5xx
”状态代码的响应数,以及每个状态代码的响应数。-
1xx
(整数
) -
状态代码为“
1xx
”的响应数量。 -
2xx
(整数
) -
状态代码为“
2xx
”的响应数量。 -
3xx
(整数
) -
状态代码为“
3xx
”的响应数量。 -
4xx
(整数
) -
状态代码为“
4xx
”的响应数量。 -
5xx
(整数
) -
状态代码为“
5xx
”的响应数量。 -
代码
-
每个状态代码的响应数量。
-
codeNumber
(整数
) - 具有此特定状态代码的响应数量。
-
-
总计
(整数
) - 发送给客户端的响应总数。
-
-
discarded
(整数
) - 在不发送响应的情况下完成的请求总数。
-
received
(整数
) - 从客户端接收的字节总数。
-
sent
(整数
) - 发送给客户端的字节总数。
-
ssl
-
-
handshakes
(integer
) - 成功的 SSL 握手的总数。
-
握手失败
(整数
) - SSL 握手失败的总数。
-
会话重用
(整数
) - SSL 握手期间会话重用的总数。
-
无通用协议
(整数
) - 由于没有通用协议而导致 SSL 握手失败的次数。
-
无通用密码
(整数
) - 由于没有共享密码而导致 SSL 握手失败的次数。
-
握手超时
(整数
) - 由于超时而导致 SSL 握手失败的次数。
-
对等方拒绝证书
(整数
) - 当 nginx 向客户端出示证书但被拒绝并伴有相应的警报消息时,SSL 握手失败的次数。
-
验证失败
-
SSL 证书验证错误
-
无证书
(整数
) - 客户端未提供所需的证书。
-
证书过期
(整数
) - 客户端出示了已过期或尚未生效的证书。
-
证书吊销
(整数
) - 客户端出示了已吊销的证书。
-
其他
(整数
) - 其他 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 位置区域
-
请求
(整数
) - 从客户端收到的客户端请求总数。
-
响应
-
发送给客户端的响应总数,“
1xx
”、“2xx
”、“3xx
”、“4xx
”和“5xx
”状态代码的响应数,以及每个状态代码的响应数。-
1xx
(整数
) -
状态代码为“
1xx
”的响应数量。 -
2xx
(整数
) -
状态代码为“
2xx
”的响应数量。 -
3xx
(整数
) -
状态代码为“
3xx
”的响应数量。 -
4xx
(整数
) -
状态代码为“
4xx
”的响应数量。 -
5xx
(整数
) -
状态代码为“
5xx
”的响应数量。 -
代码
-
每个状态代码的响应数量。
-
codeNumber
(整数
) - 具有此特定状态代码的响应数量。
-
-
总计
(整数
) - 发送给客户端的响应总数。
-
-
discarded
(整数
) - 在不发送响应的情况下完成的请求总数。
-
received
(整数
) - 从客户端接收的字节总数。
-
sent
(整数
) - 发送给客户端的字节总数。
示例
{ "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
(整数
) - 缓存的当前大小。
-
max_size
(整数
) - 配置中指定的缓存最大大小限制。
-
cold
(布尔值
) - 指示“缓存加载程序”进程是否仍在将数据从磁盘加载到缓存中的布尔值。
-
命中
-
-
responses
(整数
) - 从缓存中读取的 有效 响应总数。
-
bytes
(整数
) - 从缓存中读取的字节总数。
-
-
陈旧
-
-
responses
(整数
) -
从缓存中读取的已过期响应总数(请参阅 proxy_cache_use_stale 和其他“
*_cache_use_stale
”指令)。 -
bytes
(整数
) - 从缓存中读取的字节总数。
-
-
更新
-
-
responses
(整数
) -
在更新响应时从缓存中读取的已过期响应总数(请参阅 proxy_cache_use_stale 和其他“
*_cache_use_stale
”指令)。 -
bytes
(整数
) - 从缓存中读取的字节总数。
-
-
重新验证
-
-
responses
(整数
) -
从缓存中读取的已过期且重新验证的响应总数(请参阅 proxy_cache_revalidate 和其他“
*_cache_revalidate
”指令)。 -
bytes
(整数
) - 从缓存中读取的字节总数。
-
-
未命中
-
-
responses
(整数
) - 缓存中未找到的响应总数。
-
bytes
(整数
) - 从代理服务器读取的字节总数。
-
responses_written
(整数
) - 写入缓存的响应总数。
-
bytes_written
(整数
) - 写入缓存的字节总数。
-
-
过期
-
-
responses
(整数
) - 未从缓存中获取的已过期响应总数。
-
bytes
(整数
) - 从代理服务器读取的字节总数。
-
responses_written
(整数
) - 写入缓存的响应总数。
-
bytes_written
(整数
) - 写入缓存的字节总数。
-
-
绕过
-
-
responses
(整数
) -
由于 proxy_cache_bypass 和其他“
*_cache_bypass
”指令,未在缓存中查找的响应总数。 -
bytes
(整数
) - 从代理服务器读取的字节总数。
-
responses_written
(整数
) - 写入缓存的响应总数。
-
bytes_written
(整数
) - 写入缓存的字节总数。
-
示例
{ "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
(整数
) - 未限制或未计为限制的连接总数。
-
rejected
(整数
) - 被拒绝的连接总数。
-
rejected_dry_run
(整数
) - 试运行 模式中计为被拒绝的连接总数。
示例
{ "passed" : 15, "rejected" : 0, "rejected_dry_run" : 2 }
-
-
HTTP 请求速率限制
-
passed
(整数
) - 未限制或未计为限制的请求总数。
-
delayed
(整数
) - 被延迟的请求总数。
-
rejected
(整数
) - 被拒绝的请求总数。
-
delayed_dry_run
(整数
) - 试运行 模式中计为被延迟的请求总数。
-
rejected_dry_run
(整数
) - 试运行 模式中计为被拒绝的请求总数。
示例
{ "passed" : 15, "delayed" : 4, "rejected" : 0, "delayed_dry_run" : 1, "rejected_dry_run" : 2 }
-
-
HTTP 上游
-
对等方
-
数组
-
id
(整数
) - 服务器的 ID。
-
server
(字符串
) - 服务器 的地址。
-
service
(字符串
) - server 指令的 service 参数值。
-
name
(字符串
) - server 指令中指定的服务器名称。
-
backup
(布尔值
) - 布尔值,表示服务器是否是 备用 服务器。
-
weight
(整数
) - 服务器的权重。
-
state
(字符串
) -
当前状态,可能是“
up
”、“draining
”、“down
”、“unavail
”、“checking
”和“unhealthy
”之一。 -
active
(integer
) - 当前活动连接数。
-
ssl
-
-
handshakes
(integer
) - 成功的 SSL 握手的总数。
-
握手失败
(整数
) - SSL 握手失败的总数。
-
会话重用
(整数
) - SSL 握手期间会话重用的总数。
-
无通用协议
(整数
) - 由于没有通用协议而导致 SSL 握手失败的次数。
-
握手超时
(整数
) - 由于超时而导致 SSL 握手失败的次数。
-
对等方拒绝证书
(整数
) - 当 nginx 向上游服务器提供证书但被拒绝并显示相应警报消息时,失败的 SSL 握手机数。
-
验证失败
-
SSL 证书验证错误
-
证书过期
(整数
) - 上游服务器提供了一个过期的或尚未生效的证书。
-
证书吊销
(整数
) - 上游服务器提供了一个已吊销的证书。
-
主机名不匹配
(整数
) - 服务器证书与主机名不匹配。
-
其他
(整数
) - 其他 SSL 证书验证错误。
-
-
-
max_conns
(integer
) - 服务器的 max_conns 限制。
-
请求
(整数
) - 转发到此服务器的客户端请求总数。
-
响应
-
-
1xx
(整数
) -
状态代码为“
1xx
”的响应数量。 -
2xx
(整数
) -
状态代码为“
2xx
”的响应数量。 -
3xx
(整数
) -
状态代码为“
3xx
”的响应数量。 -
4xx
(整数
) -
状态代码为“
4xx
”的响应数量。 -
5xx
(整数
) -
状态代码为“
5xx
”的响应数量。 -
代码
-
每个状态代码的响应数量。
-
codeNumber
(整数
) - 具有此特定状态代码的响应数量。
-
-
总计
(整数
) - 从此服务器获取的响应总数。
-
-
sent
(整数
) - 发送到此服务器的字节总数。
-
received
(整数
) - 从此服务器接收的字节总数。
-
失败
(整数
) - 与服务器通信失败的尝试总数。
-
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
) - 共享内存区域的名称,用于保存组的配置和运行时状态。
-
队列
-
对于请求队列,提供以下数据
-
size
(整数
) - 当前队列中的请求数。
-
max_size
(整数
) - 队列中同时可以存在的最大请求数。
-
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
(整数
) - HTTP 上游服务器的 ID。ID 会自动分配,无法更改。
-
server
(字符串
) -
与 HTTP 上游服务器的地址参数相同。添加服务器时,可以将其指定为域名。在这种情况下,将监控与域名相对应的 IP 地址的更改,并在无需重新启动 nginx 的情况下自动将其应用于上游配置。这需要在“
http
”块中使用解析器指令。另请参阅 HTTP 上游服务器的解析参数。 -
service
(字符串
) - 与 HTTP 上游服务器的服务参数相同。此参数无法更改。
-
weight
(整数
) - 与 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
(布尔值
) -
当为
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 } }
-
流服务器区
-
处理中
(整数
) - 当前正在处理的客户端连接数。
-
connections
(integer
) - 从客户端接受的总连接数。
-
sessions
-
已完成会话的总数,以及使用状态代码“
2xx
”、“4xx
”或“5xx
”完成的会话数。 -
discarded
(整数
) - 未创建会话而完成的连接总数。
-
received
(整数
) - 从客户端接收的字节总数。
-
sent
(整数
) - 发送给客户端的字节总数。
-
ssl
-
-
handshakes
(integer
) - 成功的 SSL 握手的总数。
-
握手失败
(整数
) - SSL 握手失败的总数。
-
会话重用
(整数
) - SSL 握手期间会话重用的总数。
-
无通用协议
(整数
) - 由于没有通用协议而导致 SSL 握手失败的次数。
-
无通用密码
(整数
) - 由于没有共享密码而导致 SSL 握手失败的次数。
-
握手超时
(整数
) - 由于超时而导致 SSL 握手失败的次数。
-
对等方拒绝证书
(整数
) - 当 nginx 向客户端出示证书但被拒绝并伴有相应的警报消息时,SSL 握手失败的次数。
-
验证失败
-
SSL 证书验证错误
-
无证书
(整数
) - 客户端未提供所需的证书。
-
证书过期
(整数
) - 客户端出示了已过期或尚未生效的证书。
-
证书吊销
(整数
) - 客户端出示了已吊销的证书。
-
其他
(整数
) - 其他 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
(整数
) - 未限制或未计为限制的连接总数。
-
rejected
(整数
) - 被拒绝的连接总数。
-
rejected_dry_run
(整数
) - 在 空运行 模式中被视为拒绝的连接总数。
示例
{ "passed" : 15, "rejected" : 0, "rejected_dry_run" : 2 }
-
-
流上游
-
对等方
-
数组
-
id
(整数
) - 服务器的 ID。
-
server
(字符串
) - 服务器的 地址。
-
service
(字符串
) - server 指令的 service 参数值。
-
name
(字符串
) - server 指令中指定的服务器名称。
-
backup
(布尔值
) - 指示服务器是否为 备份 服务器的布尔值。
-
weight
(整数
) - 服务器的 权重。
-
state
(字符串
) -
当前状态,可能是 “
up
”、“down
”、“unavail
”、“checking
” 或 “unhealthy
” 之一。 -
active
(integer
) - 当前连接数。
-
ssl
-
-
handshakes
(integer
) - 成功的 SSL 握手的总数。
-
握手失败
(整数
) - SSL 握手失败的总数。
-
会话重用
(整数
) - SSL 握手期间会话重用的总数。
-
无通用协议
(整数
) - 由于没有通用协议而导致 SSL 握手失败的次数。
-
握手超时
(整数
) - 由于超时而导致 SSL 握手失败的次数。
-
对等方拒绝证书
(整数
) - 当 nginx 向上游服务器提供证书但被拒绝并显示相应警报消息时,失败的 SSL 握手机数。
-
验证失败
-
SSL 证书验证错误
-
证书过期
(整数
) - 上游服务器提供了一个过期的或尚未生效的证书。
-
证书吊销
(整数
) - 上游服务器提供了一个已吊销的证书。
-
主机名不匹配
(整数
) - 服务器证书与主机名不匹配。
-
其他
(整数
) - 其他 SSL 证书验证错误。
-
-
-
max_conns
(integer
) - 服务器的 max_conns 限制。
-
connections
(integer
) - 转发到此服务器的客户端连接总数。
-
connect_time
(integer
) - 连接到上游服务器的平均时间。
-
first_byte_time
(integer
) - 接收第一个字节数据的平均时间。
-
response_time
(integer
) - 接收最后一个字节数据的平均时间。
-
sent
(整数
) - 发送到此服务器的字节总数。
-
received
(整数
) - 从此服务器接收的字节总数。
-
失败
(整数
) - 与服务器通信失败的尝试总数。
-
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
(整数
) - 流上游服务器的 ID。ID 自动分配,不可更改。
-
server
(字符串
) -
与流上游服务器的 address 参数相同。添加服务器时,可以将其指定为域名。在这种情况下,将监视与域名相对应的 IP 地址的更改,并自动将其应用于上游配置,而无需重新启动 nginx。这需要在“
stream
”块中使用 resolver 指令。另请参阅流上游服务器的 resolve 参数。 -
service
(字符串
) - 与流上游服务器的 service 参数相同。此参数无法更改。
-
weight
(整数
) - 与流上游服务器的 weight 参数相同。
-
max_conns
(integer
) - 与流上游服务器的 max_conns 参数相同。
-
max_fails
(integer
) - 与流上游服务器的 max_fails 参数相同。
-
fail_timeout
(string
) - 与流上游服务器的 fail_timeout 参数相同。
-
slow_start
(string
) - 与流上游服务器的 slow_start 参数相同。
-
backup
(布尔值
) -
当为
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 }
-
-
流 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
(整数
) - 此节点发送的字节数。
-
nodes_online
(整数
) - 此节点连接的对等节点数。
-
示例
{ "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
(整数
) - 需要发送到集群的记录数。
-
records_total
(整数
) - 存储在共享内存区域中的记录总数。
-
-
解析区域
每个特定解析区域的 DNS 请求和响应统计信息。-
请求
-
-
name
(整数
) - 将名称解析为地址的请求总数。
-
srv
(整数
) - 解析 SRV 记录的请求总数。
-
addr
(整数
) - 将地址解析为名称的请求总数。
-
-
响应
-
-
noerror
(整数
) - 成功响应的总数。
-
formerr
(整数
) -
FORMERR(
格式错误
)响应的总数。 -
servfail
(整数
) -
SERVFAIL(
服务器故障
)响应的总数。 -
nxdomain
(整数
) -
NXDOMAIN(
找不到主机
)响应的总数。 -
notimp
(整数
) -
NOTIMP(
未实现
)响应的总数。 -
refused
(整数
) -
REFUSED(
操作被拒绝
)响应的总数。 -
timedout
(整数
) - 超时请求的总数。
-
unknown
(整数
) - 以未知错误完成的请求的总数。
-
示例
{ "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
(整数
) - 工作进程的 ID。
-
pid
(integer
) - 操作系统使用的工作进程的 PID 标识符。
-
连接
-
每个工作进程的已接受、已丢弃、活动和空闲连接数。
-
accepted
(integer
) - 工作进程接受的客户端连接总数。
-
dropped
(integer
) - 工作进程丢弃的客户端连接总数。
-
active
(integer
) - 工作进程当前正在处理的活动客户端连接数。
-
idle
(integer
) - 工作进程当前正在处理的空闲客户端连接数。
-
-
http
-
-
请求
-
工作进程处理的客户端请求总数。
-
总计
(整数
) - 工作进程接收的客户端请求总数。
-
当前
(整数
) - 工作进程当前正在处理的客户端请求数。
-
-
示例
{ "id" : 0, "pid" : 32212, "connections" : { "accepted" : 1, "dropped" : 0, "active" : 1, "idle" : 0 }, "http" : { "requests" : { "total" : 15, "current" : 1 } } }
-
-
错误
nginx 错误对象。-
错误
-
-
status
(整数
) - HTTP 错误代码。
-
text
(字符串
) - 错误描述。
-
code
(字符串
) - 内部 nginx 错误代码。
-
-
request_id
(字符串
) - 请求的 ID,等于 $request_id 变量的值。
-
href
(字符串
) - 指向参考文档的链接。
-