模块 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 |
在周围的 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 不同。
兼容性
- /license 数据在 版本 9 (1.27.2) 中添加。
- /workers/ 数据在 版本 9 中添加。
- 在 版本 8 (1.23.2) 中,向 SSL 统计信息添加了详细的故障计数器。
- 每个 HTTP 上游、服务器区域 和流 上游、服务器区域 的
ssl
数据在 版本 8 (1.21.6) 中添加。 - 每个 HTTP 上游、服务器区域 和 位置区域 的
responses
中的codes
数据在 版本 7 中添加。 - /stream/limit_conns/ 数据在 版本 6 中添加。
- /http/limit_conns/ 数据在 版本 6 中添加。
- /http/limit_reqs/ 数据在 版本 6 中添加。
- 自 版本 5 以来,可以 设置 或 更改键值对的“
expire
”参数。 - /resolvers/ 数据在 版本 5 中添加。
- /http/location_zones/ 数据在 版本 5 中添加。
- 在 版本 4 中,删除了 nginx 错误对象 的
path
和method
字段。这些字段在较早的 api 版本中继续存在,但显示为空值。 - /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
- 重置 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
,可选)- 限制将输出服务器区域的哪些字段。
可能的响应
- 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
(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_req 的 "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 keyval 的“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 键 (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
),返回 错误 - 409 - 条目已存在 (
EntryExists
),键已存在 (KeyvalKeyExists
),返回错误 - 413 - 请求实体过大,返回错误
- 415 - JSON 错误 (
JsonError
),返回 错误
-
PATCH
- 修改键值对或删除键更改键值对中所选键的值,通过将键值设置为
null
来删除键,更改键值对的过期时间。如果启用了集群中 keyval 区域的同步,则仅在目标集群节点上删除键。可以使用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
),返回 错误 - 413 - 请求实体过大,返回错误
- 415 - JSON 错误 (
JsonError
),返回 错误
-
DELETE
- 清空 HTTP keyval 区域从 HTTP keyval 共享内存区域删除所有键值对。如果启用了集群中 keyval 区域的同步,则仅在目标集群节点上清空 keyval 区域。
可能的响应
-
/stream/
-
支持的方法
-
GET
- 返回与流相关的端点的列表返回一级流端点的列表。
可能的响应
- 200 - 成功,返回一个字符串数组
- 404 - 未知版本 (
UnknownVersion
),返回 错误
-
-
/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
),“最大连接数
”无效 (UpstreamBadMaxConns
),“最大失败次数
”无效 (UpstreamBadMaxFails
),“失败超时
”无效 (UpstreamBadFailTimeout
),“慢启动
”无效 (UpstreamBadSlowStart
),“服务
”为空 (UpstreamBadService
),未定义解析器以解析 (UpstreamConfNoResolver
),上游“名称
”没有备份 (UpstreamNoBackup
),上游“名称
”内存不足 (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
),“参数
”值无效 (UpstreamConfFormatError
),未知参数“名称
” (UpstreamConfFormatError
),嵌套对象或列表 (UpstreamConfFormatError
),解析时出现“错误
” (UpstreamBadAddress
),“server
”参数无效 (UpstreamBadAddress
),服务器“主机
”中没有端口 (UpstreamBadAddress
),服务器 ID 无效 (UpstreamBadServerId
),“权重
”无效 (UpstreamBadWeight
),“最大连接数
”无效 (UpstreamBadMaxConns
),“最大失败次数
”无效 (UpstreamBadMaxFails
),“失败超时
”无效 (UpstreamBadFailTimeout
),“慢启动
”无效 (UpstreamBadSlowStart
),读取请求正文失败 (BodyReadError
),“服务
”为空 (UpstreamBadService
),服务器“ID
”地址是不可变的 (UpstreamServerImmutable
),服务器“ID
”权重是不可变的 (UpstreamServerWeightImmutable
),上游“名称
”内存不足 (UpstreamOutOfMemory
),返回错误 - 404 - ID 为“
id
”的服务器不存在 (UpstreamServerNotFound
),未知版本 (UnknownVersion
),上游未找到 (UpstreamNotFound
),返回 错误 - 405 - 方法禁用 (
MethodDisabled
),返回 错误 - 415 - JSON 错误 (
JsonError
),返回 错误
-
DELETE
- 从流上游服务器组中删除服务器从流服务器组中删除服务器。
可能的响应
-
/stream/keyvals/
-
支持的方法
-
GET
- 从所有流 keyval 区域返回键值对返回每个流 keyval 共享内存区域的键值对。
请求参数
fields
(string
,可选)- 如果“
fields
”值为空,则只输出流 keyval 区域名称。
可能的响应
- 200 - 成功,返回所有流 keyval 的“流 Keyval 共享内存区域”对象的集合
- 404 - 未知版本 (
UnknownVersion
),返回 错误
-
-
/stream/keyvals/{streamKeyvalZoneName}
- 所有方法的通用参数
streamKeyvalZoneName
(string
, 必需)- 流 keyval 共享内存区域的名称。
支持的方法
-
GET
- 从流 keyval 区域返回键值对返回存储在特定流 keyval 共享内存区域中的键值对。
请求参数
key
(string
, 可选)- 从流 keyval 区域获取特定的键值对。
可能的响应
- 200 - 成功,返回流 Keyval 共享内存区域
- 404 - 未找到 Keyval (
KeyvalNotFound
),未找到 keyval 键 (KeyvalKeyNotFound
),未知版本 (UnknownVersion
),返回错误
-
POST
- 向流 keyval 区域添加键值对向流 keyval 共享内存区域添加新的键值对。如果流 keyval 共享内存区域为空,则可以输入多个键值对。
请求参数
Key-value
(流 Keyval 共享内存区域, 必需)- 以 JSON 格式指定键值对。如果流 keyval 共享内存区为空,则可以输入多个键值对。可以使用
expire
参数为键值对指定以毫秒为单位的过期时间,这将覆盖timeout
参数 keyval_zone 指令。
可能的响应
- 201 - 已创建
- 400 - JSON 无效 (
KeyvalFormatError
),键格式无效 (KeyvalFormatError
),需要键 (KeyvalFormatError
),keyval 超时未启用 (KeyvalFormatError
),只能添加一个键 (KeyvalFormatError
),读取请求正文失败 (BodyReadError
),返回错误 - 404 - 未找到 Keyval (
KeyvalNotFound
),未知版本 (UnknownVersion
),返回错误 - 405 - 方法禁用 (
MethodDisabled
),返回 错误 - 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
),返回 错误 - 413 - 请求实体过大,返回错误
- 415 - JSON 错误 (
JsonError
),返回 错误
-
DELETE
- 清空流 keyval 区域从流 keyval 共享内存区域删除所有键值对。如果启用了集群中 keyval 区域的同步,则仅在目标集群节点上清空 keyval 区域。
可能的响应
-
/stream/zone_sync/
-
支持的方法
-
/resolvers/
-
支持的方法
-
/resolvers/{resolverZoneName}
- 所有方法的通用参数
resolverZoneName
(string
,必需)- 解析器区域的名称。
支持的方法
-
GET
- 返回解析器区域的统计信息返回存储在特定解析器区域中的统计信息。
请求参数
fields
(string
,可选)- 限制将输出解析器区域的哪些字段(请求、响应或两者)。
可能的响应
-
DELETE
- 重置解析器区域的统计信息。重置特定解析器区域中的统计信息。
可能的响应
-
/ssl
-
支持的方法
-
/license
-
支持的方法
-
/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
) - 写入缓存的字节总数。
-
-
旁路
-
-
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
(整数
) - 既未受限也未计为受限的连接总数。
-
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 握手总数。
-
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
(整数
) - 服务器的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
(整数
) - 由于失败尝试次数达到max_fails阈值,服务器因客户端请求而不可用的次数(状态“
unavail
”)。 -
健康检查
-
downtime
(整数
) - 服务器处于“
unavail
”、“checking
”和“unhealthy
”状态的总时间。 -
downstart
(字符串
) - 服务器变为“
unavail
”、“checking
”或“unhealthy
”的时间,以毫秒分辨率的ISO 8601格式表示。 -
selected
(字符串
) - 上次选择服务器处理请求的时间,以毫秒分辨率的ISO 8601格式表示。
-
header_time
(整数
) - 从服务器获取响应头的平均时间。
-
response_time
(整数
) - 从服务器获取完整响应的平均时间。
-
-
keepalive
(整数
) - 当前空闲保持活动连接数。
-
zombies
(整数
) - 当前已从组中删除但仍在处理活动客户端请求的服务器数量。
-
zone
(字符串
) - 保持组配置和运行时状态的共享内存区域的名称。
-
队列
- 对于请求队列,提供以下数据
-
size
(integer
) - 队列中当前的请求数。
-
max_size
(integer
) - 队列中同时可以容纳的最大请求数。
-
overflows
(整数
) - 由于队列溢出而被拒绝的请求总数。
-
示例
{ "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上游server的可动态配置参数-
id
(整数
) - HTTP上游服务器的ID。ID自动分配,不可更改。
-
server
(字符串
) - 与HTTP上游服务器的address参数相同。添加服务器时,可以将其指定为域名。在这种情况下,将监视与域名相对应的IP地址的变化,并在无需重新启动nginx的情况下自动应用于上游配置。这需要“
http
”块中的resolver指令。另请参见HTTP上游服务器的resolve参数。 -
service
(字符串
) - 与HTTP上游服务器的service参数相同。此参数不可更改。
-
weight
(整数
) - 与HTTP上游服务器的weight参数相同。
-
max_conns
(整数
) - 与HTTP上游服务器的max_conns参数相同。
-
max_fails
(整数
) - 与HTTP上游服务器的max_fails参数相同。
-
fail_timeout
(字符串
) - 与HTTP上游服务器的fail_timeout参数相同。
-
slow_start
(字符串
) - 与HTTP上游服务器的slow_start参数相同。
-
route
(字符串
) - 与HTTP上游服务器的route参数相同。
-
backup
(布尔值
) - 当
true
时,添加备份服务器。此参数不可更改。 -
down
(布尔值
) - 与HTTP上游服务器的down参数相同。
-
drain
(布尔值
) - 与HTTP上游服务器的drain参数相同。
-
parent
(字符串
) - 已解析服务器的父服务器ID。ID自动分配,不可更改。
-
host
(字符串
) - 已解析服务器的主机名。主机名自动分配,不可更改。
示例
{ "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
(整数
) - 从客户端接受的连接总数。
-
会话
- 已完成的会话总数,以及以“
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
(整数
) - 既未受限也未计为受限的连接总数。
-
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 握手总数。
-
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
(整数
) - 服务器的max_conns限制。
-
connections
(整数
) - 转发到此服务器的客户端连接总数。
-
connect_time
(整数
) - 连接到上游服务器的平均时间。
-
first_byte_time
(整数
) - 接收第一个数据字节的平均时间。
-
response_time
(整数
) - 接收最后一个数据字节的平均时间。
-
sent
(integer
) - 发送到此服务器的字节总数。
-
received
(integer
) - 从此服务器接收到的字节总数。
-
fails
(integer
) - 与服务器通信的失败尝试总数。
-
unavail
(整数
) - 由于失败尝试次数达到max_fails阈值,服务器因客户端连接而不可用的次数(状态“
unavail
”)。 -
健康检查
-
downtime
(整数
) - 服务器处于“
unavail
”、“checking
”和“unhealthy
”状态的总时间。 -
downstart
(字符串
) - 服务器变为“
unavail
”、“checking
”或“unhealthy
”的时间,以毫秒分辨率的ISO 8601格式表示。 -
selected
(字符串
) - 服务器上次被选中处理连接的时间,采用 ISO 8601 格式,并具有毫秒级精度。
-
-
zombies
(整数
) - 当前从组中移除但仍在处理活动客户端连接的服务器数量。
-
zone
(字符串
) - 用于保存组配置和运行时状态的共享内存区域的名称。
示例
{ "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
(字符串
) - 与流上游服务器的地址参数相同。添加服务器时,可以将其指定为域名。在这种情况下,将监视与域名相对应的 IP 地址的变化,并在无需重新启动 nginx 的情况下自动应用于上游配置。这需要在“
stream
”块中使用resolver指令。另请参见流上游服务器的resolve参数。 -
service
(字符串
) - 与流上游服务器的服务参数相同。此参数无法更改。
-
weight
(整数
) - 与流上游服务器的权重参数相同。
-
max_conns
(整数
) - 与流上游服务器的max_conns参数相同。
-
max_fails
(整数
) - 与流上游服务器的max_fails参数相同。
-
fail_timeout
(字符串
) - 与流上游服务器的fail_timeout参数相同。
-
slow_start
(字符串
) - 与流上游服务器的slow_start参数相同。
-
backup
(布尔值
) - 当为
true
时,添加一个备份服务器。此参数无法更改。 -
down
(布尔值
) - 与流上游服务器的down参数相同。
-
parent
(字符串
) - 已解析服务器的父服务器ID。ID自动分配,不可更改。
-
host
(字符串
) - 已解析服务器的主机名。主机名自动分配,不可更改。
示例
{ "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 } }
-
流区域同步节点
-
区域
-
每个共享内存区域的同步信息。
一个"同步区域"对象的集合
-
状态
- 集群中每个节点的同步信息。
-
bytes_in
(整数
) - 此节点接收的字节数。
-
msgs_in
(整数
) - 此节点接收的消息数。
-
msgs_out
(整数
) - 此节点发送的消息数。
-
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
(整数
) - 解析地址到名称的请求总数。
-
-
responses
-
-
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 } } }
-
-
许可证
NGINX Plus 实例的许可证和使用情况报告状态。-
eval
(布尔值
) - 指示 NGINX Plus 许可证是否为试用版。
-
active_till
(整数
) - 许可证到期时间戳(Unix 时间戳)。
-
报告
-
-
healthy
(布尔值
) - 指示尽管最近尝试失败,但报告状态是否仍被视为健康。
-
fails
(integer
) - 失败的报告尝试次数,每次成功发送使用情况报告时重置。
-
grace
(整数
) - 在报告尝试失败后停止流量处理之前的秒数。
-
示例
{ "eval" : false, "active_till" : 1749268757, "reporting" : { "healthy" : true, "fails" : 2, "grace" : 15551961 } }
-
-
工作进程
每个工作进程的统计信息。-
id
(整数
) - 工作进程的 ID。
-
pid
(integer
) - 操作系统使用的工作进程的 PID 标识符。
-
连接
- 每个工作进程接受、丢弃、活动和空闲连接的数量。
-
accepted
(integer
) - 工作进程接受的客户端连接总数。
-
dropped
(integer
) - 工作进程丢弃的客户端连接总数。
-
active
(integer
) - 当前由工作进程处理的活动客户端连接数。
-
idle
(integer
) - 当前由工作进程处理的空闲客户端连接数。
-
-
http
-
-
请求
- 工作进程处理的客户端请求总数。
-
total
(integer
) - 工作进程接收的客户端请求总数。
-
current
(integer
) - 当前由工作进程处理的客户端请求数。
-
-
示例
{ "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
(字符串
) - 参考文档的链接。
-