回應代碼詳情
如果透過 存取日誌或自訂標頭設定 _%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 標頭指示的大小不同。 |