路由器(proto)
此扩展的限定名称为 envoy.filters.http.router
注意
此扩展旨在对不可信的下游和上游流量具有鲁棒性。
提示
此扩展扩展并可与以下扩展类别一起使用
此扩展必须使用以下类型 URL 之一进行配置
路由器 配置概述.
extensions.filters.http.router.v3.Router
[extensions.filters.http.router.v3.Router proto]
{
"dynamic_stats": {...},
"start_child_span": ...,
"upstream_log": [],
"upstream_log_options": {...},
"suppress_envoy_headers": ...,
"strict_check_headers": [],
"respect_expected_rq_timeout": ...,
"suppress_grpc_request_failure_code_stats": ...,
"upstream_http_filters": []
}
- dynamic_stats
(BoolValue) 是否路由器生成动态集群统计信息。默认为 true。可以在高性能场景中禁用。
- start_child_span
(bool) 是否为出站路由调用启动子跨度。这在其他过滤器(身份验证、速率限制等)进行出站调用且具有以相同入站父级为根的子跨度的场景中很有用。默认为 false。
注意
此字段已由 spawn_upstream_span 弃用。请使用该
spawn_upstream_span字段来控制跨度创建。
- upstream_log
(repeated config.accesslog.v3.AccessLog) 路由器发出的 HTTP 上游日志的配置。上游日志的配置方式与访问日志相同,但每个日志条目代表一个上游请求。假设配置了重试,每个下游(入站)请求可能发出多个上游请求。
- upstream_log_options
(extensions.filters.http.router.v3.Router.UpstreamAccessLogOptions) 其他上游访问日志选项。
- suppress_envoy_headers
(bool) 不要向请求或响应添加任何其他
x-envoy-报头。这仅影响 路由器过滤器生成的 x-envoy- 报头,其他 Envoy 过滤器和 HTTP 连接管理器可能会继续设置x-envoy-报头。
- strict_check_headers
(repeated string) 指定要严格验证的 HTTP 报头列表。如果请求包含此字段中列出的任何报头的无效值,Envoy 将拒绝请求并以 HTTP 状态 400 响应。严格报头检查仅支持以下报头
值必须是支持的重试策略值的“,”分隔列表(即没有空格)
值必须是整数
- respect_expected_rq_timeout
(bool) 如果未设置,入站 Envoy 将忽略 x-envoy-expected-rq-timeout-ms 报头(由出站 Envoy 填充),在为上游集群推导出超时时。
- suppress_grpc_request_failure_code_stats
(bool) 如果设置,Envoy 将避免在 gRPC 请求上增加 HTTP 失败代码统计信息。这包括单个状态代码值(例如 upstream_rq_504)和组统计信息(例如 upstream_rq_5xx)。如果只想依靠 gRPC 统计信息过滤器来定义 gRPC 请求的成功和失败指标,则此字段很有用,因为并非所有失败的 gRPC 请求都会计入 HTTP 状态代码指标。有关更多详细信息,请参阅 gRPC 统计信息过滤器 文档。
- upstream_http_filters
- (repeated extensions.filters.network.http_connection_manager.v3.HttpFilter) .. note:
上游 HTTP 过滤器目前处于 Alpha 阶段。
上游 HTTP 过滤器链的可选 HTTP 过滤器。
这些过滤器将应用于通过路由器的所有请求。它们也将应用于阴影请求。上游 HTTP 过滤器无法更改路由或集群。在集群上指定的上游 HTTP 过滤器将覆盖这些过滤器。
如果使用上游 HTTP 过滤器,请注意上游 HTTP 过滤器发送的本地错误不会触发重试,并且上游 HTTP 过滤器发送的本地错误将被计为最终响应(如果配置了对冲)。
extensions.filters.http.router.v3.Router.UpstreamAccessLogOptions
[extensions.filters.http.router.v3.Router.UpstreamAccessLogOptions proto]
{
"flush_upstream_log_on_upstream_stream": ...,
"upstream_log_flush_interval": {...}
}
- flush_upstream_log_on_upstream_stream
(bool) 如果设置为 true,则在与 http 请求关联的上游流时将记录上游访问日志。注意:为已建立的连接接收的每个 HTTP 请求都将产生一个上游访问日志记录。这包括,例如,通过相同连接的连续 HTTP 请求或重试的请求。如果应用了重试,则将为每个重试记录一个上游访问日志。
- upstream_log_flush_interval
(Duration) 刷新上游访问日志的间隔。默认情况下,路由器将在流关闭时刷新上游访问日志,此时 HTTP 请求已完成。如果设置了此字段,路由器将以指定的间隔定期刷新访问日志。这在长时间运行的请求(如 CONNECT 和 Websockets)的情况下特别有用。间隔必须至少为 1 毫秒。