响应代码详细信息

如果通过 访问日志,或 自定义头部 配置了 _%RESPONSE_CODE_DETAILS_, Envoy 将传达一个给定流结束的详细原因。此页列出了 HttpConnectionManager、路由器过滤器和编解码器发送的详细信息。 但这是不全面的,因为其他任何过滤器都可能会发送带有自定义详细信息的本地答复。

下面列出了 HttpConnectionManager 或路由器过滤器可能会发送的响应或重置流的原因。

Warning

以下列表不能保证是稳定的,因为细节可能会发生变化。

名称

描述

absolute_path_rejected

由于在不支持绝对路径的路由上使用绝对路径,请求被拒绝。

admin_filter_response

响应由管理过滤器生成。

cluster_not_found

由于找不到所选路由的集群,路由器过滤器拒绝了请求。

downstream_local_disconnect

由于未指定的原因,客户端连接在本地关闭。

downstream_remote_disconnect

客户端意外断开连接。

duration_timeout

已经超过最大连接持续时间。

direct_response

路由器过滤器生成直接响应。

filter_chain_not_found

由于没有匹配的过滤器链,请求被拒绝。

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 头部字段,请求被拒绝。

no_healthy_upstream

由于找不到健康的上游,路由器过滤器拒绝了请求。

overload

由于过载管理器达到配置的资源限制,请求被拒绝。

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

已超出每个流的 keepalive 超时时间。

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

连接头部格式不正确或者过长。

http1.content_length_and_chunked_not_allowed

在配置不允许的情况下,使用 Transfer-Encoding: 和 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

在配置不允许的情况下,在头部中发送了 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

headers(或 trailers)的数量超过了配置的限制。

http2.unexpected_underscore

Envoy 被配置为丢掉以 underscores 为开头的头部键的请求。

http2.unknown.nghttp2.error

nghttp2 遇到未知错误。

http2.violation.of.messaging.rule

该流违反了 HTTP/2 的消息传递规则。