回應代碼詳情

如果透過 存取日誌自訂標頭設定 _%RESPONSE_CODE_DETAILS%_,Envoy 將會傳達特定資料流結束的詳細原因。此頁面列出 HttpConnectionManager、Router 過濾器和編解碼器傳送的詳細資訊。它並非詳盡無遺,因為任何其他過濾器都可能會傳送具有自訂詳細資訊的本機回覆。

以下是 HttpConnectionManager 或 Router 過濾器可能傳送回應或重設資料流的原因清單。

警告

以下清單不保證穩定,因為詳細資訊可能會變更。

名稱

描述

absolute_path_rejected

由於在不支援絕對路徑的路由上使用絕對路徑,因此拒絕了請求。

admin_filter_response

回應是由管理過濾器產生的。

cluster_not_found

由於沒有找到所選路由的叢集,因此路由器過濾器拒絕了請求。

downstream_local_disconnect

由於提供的理由,本機關閉了用戶端連線。

downstream_remote_disconnect

用戶端意外斷線。

duration_timeout

超過了最大連線持續時間。

direct_response

直接回應是由路由器過濾器產生的。

filter_added_invalid_request_data

過濾器在過濾器鏈的錯誤階段新增了請求資料。

filter_added_invalid_response_data

過濾器在過濾器鏈的錯誤階段新增了回應資料。

filter_chain_not_found

由於沒有相符的過濾器鏈,因此拒絕了請求。

filter_removed_required_request_headers

由於設定的過濾器移除了必要的請求標頭,因此在過濾器管理員中拒絕了請求。

filter_removed_required_response_headers

由於設定的過濾器移除了必要的回應標頭,或這些值無效 (例如,溢出的狀態),因此在過濾器管理員中拒絕了回應。

internal_redirect

原始資料流已由內部重新導向取代。

low_version

由於未設定 HTTP/1.0 支援,因此拒絕了 HTTP/1.0 或 HTTP/0.9 請求。

maintenance_mode

由於叢集處於維護模式,因此路由器過濾器拒絕了請求。

max_duration_timeout

超過了每個資料流的最大持續時間逾時。

missing_host_header

由於遺失 Host: 或 :authority 欄位,因此拒絕了請求。

missing_path_rejected

由於遺失 Path 或 :path 標頭欄位,因此拒絕了請求。

no_healthy_upstream

由於沒有找到健全的上游,因此路由器過濾器拒絕了請求。

overload

由於 Overload Manager 達到設定的資源限制,因此拒絕了請求。

rejecting_because_detection_failed

由於無法偵測到原始 IP,因此拒絕了請求。

path_normalization_failed

由於已設定路徑正規化且失敗 (可能因路徑無效所致),因此拒絕了請求。

request_headers_failed_strict_check

由於 x-envoy-* 標頭未通過嚴格的標頭驗證,因此拒絕了請求。

request_overall_timeout

超過了每個資料流的總請求逾時。

request_payload_exceeded_retry_buffer_limit

Envoy 正在執行串流代理,但等待重試時,收到的資料過多。

request_payload_too_large

Envoy 正在執行非串流代理,且請求酬載超過設定的限制。

response_payload_too_large

Envoy 正在執行非串流代理,且回應酬載超過設定的限制。

route_configuration_not_found

由於沒有找到路由設定,因此拒絕了請求。

route_not_found

由於沒有找到路由,因此拒絕了請求。

stream_idle_timeout

超過了每個資料流的保持連線逾時。

upgrade_failed

由於嘗試了不支援的升級,因此拒絕了請求。

upstream_max_stream_duration_reached

由於超過了設定的最大資料流持續時間,因此銷毀了請求。

upstream_per_try_timeout

最終上游嘗試逾時。

upstream_reset_after_response_started{details}

在回應開始之後,重設了上游連線。這可能包含有關中斷連線原因的更多詳細資訊。

upstream_reset_before_response_started{details}

在回應開始之前,重設了上游連線。這可能包含有關中斷連線原因的更多詳細資訊。

upstream_response_timeout

上游回應逾時。

via_upstream

回應代碼是由上游設定的。

每個編解碼器詳細資訊

每個編解碼器在遇到錯誤時,可能會傳送編解碼器特定的詳細資訊。

Http1 詳細資訊

所有 http1 詳細資訊都以 *http1.* 為根。

名稱

描述

http1.body_disallowed

在不允許主體的請求上傳送了主體。

http1.codec_error

在 http_parser 內部遇到了一些錯誤。

http1.connection_header_rejected

Connection 標頭的格式不正確或過長。

http1.content_length_and_chunked_not_allowed

當組態不允許時,傳送了同時包含 Transfer-Encoding: chunked 和 Content-Length 標頭的請求。

http1.content_length_not_allowed

在不允許的回應上傳送了內容長度。

http1.headers_too_large

請求標頭的整體位元組大小大於設定的限制。

http1.invalid_characters

標頭包含非法字元。

http1.invalid_transfer_encoding

Transfer-Encoding 標頭無效。

http1.invalid_url

請求 URL 無效。

http1.too_many_headers

此請求傳送了過多的標頭。

http1.transfer_encoding_not_allowed

在不允許的回應上傳送了傳輸編碼。

http1.unexpected_underscore

當組態不允許時,在標頭索引鍵中傳送了底線。

Http2 詳細資訊

所有 http2 詳細資訊都以 *http2.* 為根。

名稱

描述

http2.inbound_empty_frames_flood

Envoy 偵測到輸入 HTTP/2 框架氾濫。

http2.invalid.header.field

其中一個 HTTP/2 標頭無效

http2.outbound_frames_flood

Envoy 偵測到來自伺服器的 HTTP/2 框架氾濫。

http2.too_many_headers

標頭 (或預告片) 的數量超過設定的限制

http2.unexpected_underscore

Envoy 已設定為捨棄以底線開頭的標頭索引鍵的請求。

http2.unknown.nghttp2.error

nghttp2 遇到未知的錯誤

http2.violation.of.messaging.rule

資料流違反 HTTP/2 訊息傳遞規則。

http2.remote_refuse

對等端拒絕了資料流。

http2.remote_reset

對等端重設了資料流。

Http3 詳細資訊

所有 http3 詳細資訊都以 *http3.* 為根。

名稱

描述

http3.invalid_header_field

其中一個 HTTP/3 標頭無效

http3.headers_too_large

標頭 (或預告片) 的大小超過設定的限制

http3.unexpected_underscore

Envoy 已設定為捨棄或拒絕以底線開頭的標頭索引鍵的請求。

http3.too_many_headers

傳入的請求或回應標頭包含過多的標頭。

http3.too_many_trailers

傳入的請求或回應預告片包含過多的項目。

http3.remote_refuse

對等端拒絕了資料流。

http3.remote_reset

對等端重設了資料流。

http3.inconsistent_content_length

酬載大小與 content-length 標頭指示的大小不同。