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
方法時,請確保 payload 不超過讀取客戶端請求主體的緩衝區大小,否則可能會返回 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 伺服器狀態資訊。多個伺服器可以共用同一個區域。
從 1.17.0 開始,可以針對location 收集狀態資訊。特殊值 off
會在巢狀 location 區塊中停用統計資訊收集。請注意,統計資訊是在處理結束的 location 的上下文中收集的。如果請求處理期間發生內部重新導向,則可能與原始 location 不同。
相容性
- /license 資料在版本 9 (1.27.2) 中新增。
- /workers/ 資料在版本 9 中新增。
- 詳細的失敗計數器已在版本 8 (1.23.2) 中新增至 SSL 統計資訊。
- 每個 HTTP 上游、伺服器區域和 stream 上游、伺服器區域的
ssl
資料已在版本 8 (1.21.6) 中新增。 - 每個 HTTP 上游、伺服器區域和 location 區域的
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
, 可選)- 限制將輸出伺服器區域的哪些欄位。
可能的回應
- 200 - 成功,傳回HTTP 伺服器區域
- 404 - 找不到伺服器區域 (
ServerZoneNotFound
),未知版本 (UnknownVersion
),傳回錯誤
-
DELETE
- 重設 HTTP 伺服器區域的統計資訊重設特定 HTTP 伺服器區域中已接受和已捨棄的請求、回應、接收和傳送的位元組數、SSL 交握和工作階段重複使用的計數器。
可能的回應
-
/http/location_zones/
-
支援的方法
-
GET
- 傳回所有 HTTP location 區域的狀態傳回每個 HTTP location 區域的狀態資訊。
請求參數
fields
(string
, 可選)- 限制將輸出 location 區域的哪些欄位。如果「
fields
」值為空,則僅輸出區域名稱。
可能的回應
- 200 - 成功,針對所有 HTTP location 區域傳回「HTTP Location 區域」物件的集合
- 404 - 未知版本 (
UnknownVersion
),傳回錯誤
-
-
/http/location_zones/{httpLocationZoneName}
- 所有方法通用的參數
httpLocationZoneName
(string
, 必需)- HTTP location 區域的名稱。
支援的方法
-
GET
- 傳回 HTTP location 區域的狀態傳回特定 HTTP location 區域的狀態。
請求參數
fields
(string
, 可選)- 限制將輸出 location 區域的哪些欄位。
可能的回應
- 200 - 成功,傳回HTTP Location 區域
- 404 - 找不到 Location 區域 (
LocationZoneNotFound
),未知版本 (UnknownVersion
),傳回錯誤
-
DELETE
- 重設 location 區域的統計資訊。重設特定位置區域中,已接受和已丟棄的請求、回應、已接收和已傳送的位元組統計資料。
可能的回應
-
/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 reqs 的 "HTTP 請求速率限制" 物件集合
- 404 - 未知版本 (
UnknownVersion
),傳回錯誤
-
-
/http/limit_reqs/{httpLimitReqZoneName}
- 所有方法通用的參數
httpLimitReqZoneName
(字串
,必要)- 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
(字串
,必要)- HTTP 上游伺服器群組的名稱。
支援的方法
-
GET
- 傳回 HTTP 上游伺服器群組的狀態傳回特定 HTTP 上游伺服器群組及其伺服器的狀態。
請求參數
fields
(string
, 可選)- 限制將輸出上游伺服器群組的哪些欄位。
可能的回應
-
DELETE
- 重設 HTTP 上游伺服器群組的統計資料重設上游伺服器群組中每個上游伺服器的統計資料和佇列統計資料。
可能的回應
-
/http/upstreams/{httpUpstreamName}/servers/
- 所有方法通用的參數
httpUpstreamName
(字串
,必要)- 上游伺服器群組的名稱。
支援的方法
-
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
(字串
,必要)- 上游伺服器群組的名稱。
httpUpstreamServerId
(字串
,必要)- 伺服器的 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
(字串
,必要)- HTTP keyval 共用記憶體區域的名稱。
支援的方法
-
GET
- 傳回 HTTP keyval 區域的金鑰值對傳回儲存在特定 HTTP keyval 共用記憶體 區域中的金鑰值對。
請求參數
key
(字串
,選用)- 從 HTTP keyval 區域取得特定金鑰值對。
可能的回應
- 200 - 成功,傳回 HTTP Keyval 共用記憶體區域
- 404 - 找不到 keyval (
KeyvalNotFound
),找不到 keyval 金鑰 (KeyvalKeyNotFound
),未知的版本 (UnknownVersion
),傳回 錯誤
-
POST
- 將金鑰值對新增至 HTTP keyval 區域將新的金鑰值對新增至 HTTP keyval 共用記憶體 區域。如果 HTTP keyval 共用記憶體區域為空,則可以輸入多個金鑰值對。
請求參數
金鑰值
(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
)、無效的「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/
-
支援的方法
-
GET
- 從所有串流 keyval 區域傳回鍵值對傳回每個串流 keyval 共享記憶體 區域 的鍵值對。
請求參數
fields
(string
, 可選)- 如果「
fields
」值為空,則只會輸出串流 keyval 區域名稱。
可能的回應
- 200 - 成功,傳回所有串流 keyval 的「串流 Keyval 共享記憶體區域」物件集合
- 404 - 未知版本 (
UnknownVersion
),傳回錯誤
-
-
/stream/keyvals/{streamKeyvalZoneName}
- 所有方法通用的參數
streamKeyvalZoneName
(string
,必要)- 串流 keyval 共享記憶體區域的名稱。
支援的方法
-
GET
- 從串流 keyval 區域傳回鍵值對傳回儲存在特定串流 keyval 共享記憶體 區域 中的鍵值對。
請求參數
key
(字串
,選用)- 從串流 keyval 區域取得特定的鍵值對。
可能的回應
- 200 - 成功,傳回 串流 Keyval 共享記憶體區域
- 404 - 找不到 keyval (
KeyvalNotFound
),找不到 keyval 金鑰 (KeyvalKeyNotFound
),未知的版本 (UnknownVersion
),傳回 錯誤
-
POST
- 將鍵值對新增至串流 keyval 區域將新的鍵值對新增至串流 keyval 共享記憶體 區域。如果串流 keyval 共享記憶體區域為空,則可以輸入多個鍵值對。
請求參數
Key-value
(串流 Keyval 共享記憶體區域,必要)- 金鑰值對以 JSON 格式指定。如果 stream 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
(Stream Keyval 共享記憶體區域,必填)- 金鑰的新值以 JSON 格式指定。
可能的回應
- 204 - 成功
- 400 - JSON 無效 (
KeyvalFormatError
)、需要金鑰 (KeyvalFormatError
)、未啟用 keyval 超時 (KeyvalFormatError
)、只能更新一個金鑰 (KeyvalFormatError
)、讀取請求主體失敗 (BodyReadError
),傳回 錯誤 - 404 - 找不到 keyval (
KeyvalNotFound
),找不到 keyval 金鑰 (KeyvalKeyNotFound
),未知的版本 (UnknownVersion
),傳回 錯誤 - 405 - 方法已停用 (
MethodDisabled
),傳回錯誤 - 413 - 請求實體過大,傳回 錯誤
- 415 - JSON 錯誤 (
JsonError
),傳回 錯誤
-
DELETE
- 清空 stream keyval 區域從 stream keyval 共享記憶體區域中刪除所有金鑰值對。如果啟用叢集中 keyval 區域的同步,則僅在目標叢集節點上清空 keyval 區域。
可能的回應
-
/stream/zone_sync/
-
支援的方法
-
GET
- 傳回節點的同步狀態傳回叢集節點的同步狀態。
可能的回應
- 200 - 成功,傳回 Stream 區域同步節點
- 404 - 未知版本 (
UnknownVersion
),傳回錯誤
-
-
/resolvers/
-
支援的方法
-
/resolvers/{resolverZoneName}
- 所有方法通用的參數
resolverZoneName
(string
,必填)- 解析器區域的名稱。
支援的方法
-
GET
- 傳回解析器區域的統計資訊傳回儲存在特定解析器區域中的統計資訊。
請求參數
fields
(string
, 可選)- 限制將輸出哪些解析器區域的欄位(請求、回應或兩者)。
可能的回應
-
DELETE
- 重設解析器區域的統計資訊。重設特定解析器區域中的統計資訊。
可能的回應
-
/ssl
-
支援的方法
-
/license
-
支援的方法
-
/workers/
-
支援的方法
-
GET
- 傳回所有 worker 程序 的統計資訊傳回所有 worker 程序 的統計資訊,例如已接受、已捨棄、活動、閒置連線、總請求數和目前請求數。
請求參數
fields
(string
, 可選)- 限制將輸出哪些 worker 程序 統計欄位。
可能的回應
-
DELETE
- 重設所有 worker 程序 的統計資訊。重設所有 worker 程序 的統計資訊,例如已接受、已捨棄、活動、閒置連線、總請求數和目前請求數。
可能的回應
-
-
/workers/{workerId}
- 所有方法通用的參數
workerId
(string
,必填)- worker 程序 的 ID。
支援的方法
-
GET
- 傳回 worker 程序 的狀態傳回特定 worker 程序 的狀態。
請求參數
fields
(string
, 可選)- 限制將輸出哪些 worker 程序 統計欄位。
可能的回應
-
DELETE
- 重設 worker 程序 的統計資訊。重設已接受、已捨棄、活動、閒置連線的統計資訊,以及總請求數和目前請求數。
可能的回應
回應物件
-
nginx
關於 nginx 的一般資訊-
version
(string
) - nginx 的版本。
-
build
(string
) - nginx 版本的名稱。
-
address
(string
) - 接受狀態請求的伺服器位址。
-
generation
(integer
) - 組態重新載入的總次數。
-
load_timestamp
(string
) - 上次重新載入組態的時間,以毫秒解析度的 ISO 8601 格式表示。
-
timestamp
(string
) - 目前時間,以毫秒解析度的 ISO 8601 格式表示。
-
pid
(integer
) - 處理狀態請求的 worker 程序 的 ID。
-
ppid
(integer
) - 啟動worker 程序的主程序 的 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 配置器的共享記憶體區域-
頁面
- 可用和已用記憶體頁面的數量。
-
used
(integer
) - 目前已用的記憶體頁面數量。
-
free
(integer
) - 目前可用的記憶體頁面數量。
-
-
插槽
-
記憶體插槽的狀態資料 (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
) - 從用戶端接收的用戶端請求總數。
-
回應
- 傳送給用戶端的回應總數、狀態碼為「
1xx
」、「2xx
」、「3xx
」、「4xx
」和「5xx
」的回應數量,以及每個狀態碼的回應數量。-
1xx
(integer
) - 狀態碼為「
1xx
」的回應數量。 -
2xx
(integer
) - 狀態碼為「
2xx
」的回應數量。 -
3xx
(integer
) - 狀態碼為「
3xx
」的回應數量。 -
4xx
(integer
) - 狀態碼為「
4xx
」的回應數量。 -
5xx
(integer
) - 狀態碼為「
5xx
」的回應數量。 -
代碼
- 每個狀態碼的回應數量。
-
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
) - 從用戶端接收的用戶端請求總數。
-
回應
- 傳送給用戶端的回應總數、狀態碼為「
1xx
」、「2xx
」、「3xx
」、「4xx
」和「5xx
」的回應數量,以及每個狀態碼的回應數量。-
1xx
(integer
) - 狀態碼為「
1xx
」的回應數量。 -
2xx
(integer
) - 狀態碼為「
2xx
」的回應數量。 -
3xx
(integer
) - 狀態碼為「
3xx
」的回應數量。 -
4xx
(integer
) - 狀態碼為「
4xx
」的回應數量。 -
5xx
(integer
) - 狀態碼為「
5xx
」的回應數量。 -
代碼
- 每個狀態碼的回應數量。
-
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
) - 一個布林值,指出「快取載入器」程序是否仍在將資料從磁碟載入到快取中。
-
命中
-
-
responses
(integer
) - 從快取讀取的有效回應總數。
-
bytes
(integer
) - 從快取讀取的總位元組數。
-
-
陳舊
-
-
responses
(integer
) - 從快取讀取的過期回應總數(請參閱proxy_cache_use_stale和其他「
*_cache_use_stale
」指令)。 -
bytes
(integer
) - 從快取讀取的總位元組數。
-
-
更新中
-
-
responses
(integer
) - 在更新回應時,從快取讀取的過期回應總數(請參閱 proxy_cache_use_stale 和其他「
*_cache_use_stale
」指令)。 -
bytes
(integer
) - 從快取讀取的總位元組數。
-
-
重新驗證
-
-
responses
(integer
) - 從快取讀取的過期和重新驗證的回應總數(請參閱proxy_cache_revalidate和其他「
*_cache_revalidate
」指令)。 -
bytes
(integer
) - 從快取讀取的總位元組數。
-
-
未命中
-
-
responses
(integer
) - 在快取中找不到的回應總數。
-
bytes
(integer
) - 從代理伺服器讀取的總位元組數。
-
responses_written
(integer
) - 寫入快取的回應總數。
-
bytes_written
(integer
) - 寫入快取的總位元組數。
-
-
過期
-
-
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
(integer
) - 既未受到限制,也未被視為受到限制的連線總數。
-
rejected
(integer
) - 已拒絕的連線總數。
-
rejected_dry_run
(integer
) - 在模擬執行模式中被視為拒絕的連線總數。
範例
{ "passed" : 15, "rejected" : 0, "rejected_dry_run" : 2 }
-
-
HTTP 請求速率限制
-
passed
(integer
) - 既未受到限制,也未被視為受到限制的請求總數。
-
delayed
(integer
) - 被延遲的請求總數。
-
rejected
(integer
) - 被拒絕的請求總數。
-
delayed_dry_run
(integer
) - 在模擬執行模式中被視為延遲的請求總數。
-
rejected_dry_run
(integer
) - 在模擬執行模式中被視為拒絕的請求總數。
範例
{ "passed" : 15, "delayed" : 4, "rejected" : 0, "delayed_dry_run" : 1, "rejected_dry_run" : 2 }
-
-
HTTP 上游
-
同層節點
- 一個陣列,包含:
-
id
(integer
) - 伺服器的 ID。
-
server
(string
) - 伺服器的位址。
-
service
(string
) - server 指令的 service 參數值。
-
name
(string
) - 在 server 指令中指定的伺服器名稱。
-
backup
(boolean
) - 一個布林值,表示伺服器是否為備份伺服器。
-
weight
(integer
) - 伺服器的權重。
-
state
(string
) - 目前狀態,可能為 “
up
”、“draining
”、“down
”、“unavail
”、“checking
” 和 “unhealthy
” 其中之一。 -
active
(integer
) - 目前活躍連線數。
-
ssl
-
-
handshakes
(integer
) - 成功 SSL 交握的總數。
-
handshakes_failed
(integer
) - 失敗 SSL 交握的總數。
-
session_reuses
(integer
) - SSL 交握期間的工作階段重用總數。
-
no_common_protocol
(integer
) - 由於沒有通用協定而失敗的 SSL 交握次數。
-
handshake_timeout
(integer
) - 由於逾時而失敗的 SSL 交握次數。
-
peer_rejected_cert
(integer
) - 當 nginx 向上游伺服器呈現憑證時,但憑證被拒絕並帶有相應的警告訊息時,發生 SSL 握手失敗的次數。
-
verify_failures
- SSL 憑證驗證錯誤
-
expired_cert
(integer
) - 上游伺服器呈現的憑證已過期或尚未生效。
-
revoked_cert
(integer
) - 上游伺服器呈現的憑證已撤銷。
-
hostname_mismatch
(integer
) - 伺服器的憑證與主機名稱不符。
-
other
(integer
) - 其他 SSL 憑證驗證錯誤。
-
-
-
max_conns
(integer
) - 伺服器的 max_conns 限制。
-
requests
(integer
) - 轉發到此伺服器的客戶端請求總數。
-
回應
-
-
1xx
(integer
) - 狀態碼為「
1xx
」的回應數量。 -
2xx
(integer
) - 狀態碼為「
2xx
」的回應數量。 -
3xx
(integer
) - 狀態碼為「
3xx
」的回應數量。 -
4xx
(integer
) - 狀態碼為「
4xx
」的回應數量。 -
5xx
(integer
) - 狀態碼為「
5xx
」的回應數量。 -
代碼
- 每個狀態碼的回應數量。
-
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
) - 保存群組組態和運行時狀態的共享記憶體 區域 的名稱。
-
queue
- 對於請求佇列,提供以下資料:
-
size
(integer
) - 目前佇列中的請求數量。
-
max_size
(integer
) - 佇列中同時可以存在的最大請求數量。
-
overflows
(integer
) - 由於佇列溢出而被拒絕的請求總數。
-
範例
{ "upstream_backend" : { "peers" : [ { "id" : 0, "server" : "10.0.0.1:8088", "name" : "10.0.0.1:8088", "backup" : false, "weight" : 5, "state" : "up", "active" : 0, "ssl" : { "handshakes" : 620311, "handshakes_failed" : 3432, "session_reuses" : 36442, "no_common_protocol" : 4, "handshake_timeout" : 0, "peer_rejected_cert" : 0, "verify_failures" : { "expired_cert" : 2, "revoked_cert" : 1, "hostname_mismatch" : 2, "other" : 1 } }, "max_conns" : 20, "requests" : 667231, "header_time" : 20, "response_time" : 36, "responses" : { "1xx" : 0, "2xx" : 666310, "3xx" : 0, "4xx" : 915, "5xx" : 6, "codes" : { "200" : 666310, "404" : 915, "503" : 6 }, "total" : 667231 }, "sent" : 251946292, "received" : 19222475454, "fails" : 0, "unavail" : 0, "health_checks" : { "checks" : 26214, "fails" : 0, "unhealthy" : 0, "last_passed" : true }, "downtime" : 0, "downstart" : "2022-06-28T11:09:21.602Z", "selected" : "2022-06-28T15:01:25.000Z" }, { "id" : 1, "server" : "10.0.0.1:8089", "name" : "10.0.0.1:8089", "backup" : true, "weight" : 1, "state" : "unhealthy", "active" : 0, "max_conns" : 20, "requests" : 0, "responses" : { "1xx" : 0, "2xx" : 0, "3xx" : 0, "4xx" : 0, "5xx" : 0, "codes" : { }, "total" : 0 }, "sent" : 0, "received" : 0, "fails" : 0, "unavail" : 0, "health_checks" : { "checks" : 26284, "fails" : 26284, "unhealthy" : 1, "last_passed" : false }, "downtime" : 262925617, "downstart" : "2022-06-28T11:09:21.602Z", "selected" : "2022-06-28T15:01:25.000Z" } ], "keepalive" : 0, "zombies" : 0, "zone" : "upstream_backend" } }
-
-
HTTP 上游伺服器
HTTP 上游 伺服器 的動態可配置參數-
id
(integer
) - HTTP 上游伺服器的 ID。ID 會自動指派且無法變更。
-
server
(string
) - 與 HTTP 上游伺服器的 address 參數相同。新增伺服器時,可以將其指定為網域名稱。在此情況下,將會監控與網域名稱對應的 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 }
-
-
Stream 上游
-
同層節點
- 一個陣列,包含:
-
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 向上游伺服器呈現憑證時,但憑證被拒絕並帶有相應的警告訊息時,發生 SSL 握手失敗的次數。
-
verify_failures
- SSL 憑證驗證錯誤
-
expired_cert
(integer
) - 上游伺服器呈現的憑證已過期或尚未生效。
-
revoked_cert
(integer
) - 上游伺服器呈現的憑證已撤銷。
-
hostname_mismatch
(integer
) - 伺服器的憑證與主機名稱不符。
-
other
(integer
) - 其他 SSL 憑證驗證錯誤。
-
-
-
max_conns
(integer
) - 伺服器的 max_conns 限制。
-
connections
(integer
) - 轉發到此伺服器的客戶端連線總數。
-
connect_time
(integer
) - 連線到上游伺服器的平均時間。
-
first_byte_time
(integer
) - 接收到第一個資料位元組的平均時間。
-
response_time
(integer
) - 接收到最後一個資料位元組的平均時間。
-
sent
(integer
) - 傳送到此伺服器的總位元組數。
-
received
(integer
) - 從此伺服器接收的總位元組數。
-
fails
(integer
) - 與伺服器通訊失敗的總次數。
-
unavail
(integer
) - 由於不成功的嘗試次數達到 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" } }
-
-
Stream 上游伺服器
stream 上游 伺服器 的動態可配置參數-
id
(integer
) - Stream 上游伺服器的 ID。ID 會自動指派且無法變更。
-
server
(string
) - 與 stream 上游伺服器的 address 參數相同。新增伺服器時,可以將其指定為網域名稱。在此情況下,將會監控與網域名稱對應的 IP 位址變更,並自動應用於上游組態,而無需重新啟動 nginx。這需要在 “
stream
” 區塊中使用 resolver 指令。另請參閱 stream 上游伺服器的 resolve 參數。 -
service
(string
) - 與 stream 上游伺服器的 service 參數相同。此參數無法變更。
-
weight
(integer
) - 與 stream 上游伺服器的 weight 參數相同。
-
max_conns
(integer
) - 與 stream 上游伺服器的 max_conns 參數相同。
-
max_fails
(integer
) - 與 stream 上游伺服器的 max_fails 參數相同。
-
fail_timeout
(string
) - 與 stream 上游伺服器的 fail_timeout 參數相同。
-
slow_start
(string
) - 與 stream 上游伺服器的 slow_start 參數相同。
-
backup
(boolean
) - 當為
true
時,會新增一個 backup 伺服器。此參數無法變更。 -
down
(boolean
) - 與 stream 上游伺服器的 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 }
-
-
Stream Keyval 共享記憶體區域
使用 GET 方法時的 stream keyval 共享記憶體區域的內容。範例
{ "key1" : "value1", "key2" : "value2", "key3" : "value3" }
-
Stream Keyval 共享記憶體區域
使用 POST 或 PATCH 方法時的 stream keyval 共享記憶體區域的內容。範例
{ "key1" : "value1", "key2" : "value2", "key3" : { "value" : "value3", "expire" : 30000 } }
-
Stream 區域同步節點
-
區域
-
每個共享記憶體區域的同步資訊。
一個 "同步區域" 物件的集合
-
狀態
- 叢集中每個節點的同步資訊。
-
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 請求和回應的統計資訊。-
請求
-
-
name
(integer
) - 將名稱解析為位址的請求總數。
-
srv
(integer
) - 解析 SRV 記錄的請求總數。
-
addr
(integer
) - 將位址解析為名稱的請求總數。
-
-
回應
-
-
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 } } }
-
-
授權
NGINX Plus 實例的授權和使用情況報告狀態。-
eval
(boolean
) - 表示 NGINX Plus 授權是否為試用版。
-
active_till
(integer
) - 授權到期的 Unix 時間戳記。
-
報告
-
-
healthy
(boolean
) - 表示儘管最近嘗試失敗,報告狀態是否仍被認為是健康的。
-
fails
(integer
) - 報告失敗的嘗試次數,每次成功傳送使用情況報告時都會重置。
-
grace
(integer
) - 在不成功的報告嘗試後停止流量處理之前的秒數。
-
範例
{ "eval" : false, "active_till" : 1749268757, "reporting" : { "healthy" : true, "fails" : 2, "grace" : 15551961 } }
-
-
工作進程
每個工作進程的統計資訊。-
id
(integer
) - worker 程序 的 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
(integer
) - HTTP 錯誤代碼。
-
text
(string
) - 錯誤描述。
-
code
(string
) - 內部 nginx 錯誤代碼。
-
-
request_id
(string
) - 請求的 ID,等於 $request_id 變數的值。
-
href
(string
) - 參考文件的連結。
-