响应码详情

如果通过 访问日志自定义头文件 配置了 _%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/0.9 请求被拒绝,因为未配置 HTTP/1.0 支持。

maintenance_mode

请求被路由过滤器拒绝,因为集群处于维护模式。

max_duration_timeout

超过了每个流的最大持续时间超时。

missing_host_header

请求被拒绝,因为缺少 Host: 或 :authority 字段。

missing_path_rejected

请求被拒绝,因为缺少 Path 或 :path 头文件。

no_healthy_upstream

请求被路由过滤器拒绝,因为没有找到健康的上游。

overload

请求被拒绝,因为负载管理器达到配置的资源限制。

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 头文件指示的大小不同。