响应码详情
如果通过 访问日志 或 自定义头文件 配置了 _%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 头文件指示的大小不同。 |