HTTP 路由配置 (proto)
config.route.v3.RouteConfiguration
[config.route.v3.RouteConfiguration proto]
{
"name": ...,
"virtual_hosts": [],
"vhds": {...},
"internal_only_headers": [],
"response_headers_to_add": [],
"response_headers_to_remove": [],
"request_headers_to_add": [],
"request_headers_to_remove": [],
"most_specific_header_mutations_wins": ...,
"validate_clusters": {...},
"max_direct_response_body_size_bytes": {...},
"cluster_specifier_plugins": [],
"request_mirror_policies": [],
"ignore_port_in_host_matching": ...,
"ignore_path_parameters_in_path_matching": ...,
"typed_per_filter_config": {...},
"metadata": {...}
}
- name
(string) 路由配置的名称。例如,它可能与 route_config_name 在 extensions.filters.network.http_connection_manager.v3.Rds 中匹配。
- virtual_hosts
(repeated config.route.v3.VirtualHost) 构成路由表的虚拟主机数组。
- vhds
(config.route.v3.Vhds) 将通过 VHDS API 动态加载一组虚拟主机。在存在的情况下,将使用
virtual_hosts
和vhds
字段。virtual_hosts
可用于基本路由表或不常更改的虚拟主机。vhds
用于按需发现虚拟主机。这两个字段的内容将合并以生成给定 RouteConfiguration 的路由表,其中vhds
派生的配置优先。
- internal_only_headers
(repeated string) 可选地指定连接管理器将认为是内部专用的 HTTP 标头列表。如果它们在外部请求中找到,将在过滤器调用之前进行清理。有关更多信息,请参见 x-envoy-internal。
- response_headers_to_add
(repeated config.core.v3.HeaderValueOption) 指定应添加到连接管理器编码的每个响应的 HTTP 标头列表。在此级别指定的标头在来自任何封闭 config.route.v3.VirtualHost 或 config.route.v3.RouteAction 的标头之后应用。有关更多信息,包括标头值语法的详细信息,请参见有关 自定义请求标头 的文档。
- response_headers_to_remove
(repeated string) 指定应从连接管理器编码的每个响应中删除的 HTTP 标头列表。
- request_headers_to_add
(repeated config.core.v3.HeaderValueOption) 指定应添加到 HTTP 连接管理器路由的每个请求的 HTTP 标头列表。在此级别指定的标头在来自任何封闭 config.route.v3.VirtualHost 或 config.route.v3.RouteAction 的标头之后应用。有关更多信息,包括标头值语法的详细信息,请参见有关 自定义请求标头 的文档。
- request_headers_to_remove
(repeated string) 指定应从 HTTP 连接管理器路由的每个请求中删除的 HTTP 标头列表。
- most_specific_header_mutations_wins
(bool) 将评估所有级别的标头变异(如果指定)。默认情况下,顺序是从最具体(即路由条目级别)到最不具体(即路由配置级别)。后来的标头变异可能会覆盖先前的变异。通过将此字段设置为 true,可以反转此顺序。换句话说,最具体级别的变异最后评估。
- validate_clusters
(BoolValue) 一个可选的布尔值,指定集群管理器是否会验证路由表引用的集群。如果设置为 true,并且路由引用了不存在的集群,则路由表将不会加载。如果设置为 false,并且路由引用了不存在的集群,则路由表将加载,并且如果在运行时选择了路由,则路由过滤器将返回 404。如果路由表是通过 route_config 选项静态定义的,此设置默认为 true。如果路由表是通过 rds 选项动态加载的,此设置默认为 false。用户可能希望在某些情况下覆盖默认行为(例如,当使用 CDS 以及静态路由表时)。
- max_direct_response_body_size_bytes
(UInt32Value) 响应 直接响应主体 大小的最大字节数。如果未指定,则默认为 4096。
警告
Envoy 目前将 直接响应主体 的内容保存在内存中。在将此设置为大于默认的 4KB 时要小心,因为为直接响应主体分配的内存不受数据平面缓冲控制。
- cluster_specifier_plugins
(repeated config.route.v3.ClusterSpecifierPlugin) 插件列表及其配置,这些插件和配置可由 集群指定器插件名称 在路由中使用。此列表中所有
extension.name
字段必须是唯一的。
- request_mirror_policies
(repeated config.route.v3.RouteAction.RequestMirrorPolicy) 指定一组默认请求镜像策略,这些策略适用于其虚拟主机下的所有路由。请注意,策略不会合并,最具体的非空策略将成为镜像策略。
- ignore_port_in_host_matching
(bool) 默认情况下,:authority 标头中的端口(如果有)用于主机匹配。启用此选项后,Envoy 在选择 VirtualHost 时将忽略 :authority 标头中的端口号(如果有)。注意:此选项不会剥离路由配置 config.route.v3.VirtualHost.domains 字段中包含的端口号(如果有)。
- ignore_path_parameters_in_path_matching
(bool) 忽略路径匹配中的路径参数。在 RFC3986 之前,URI 类似于(RFC1808):<scheme>://<net_loc>/<path>;<params>?<query>#<fragment> Envoy 默认情况下将“:path”作为“<path>;<params>”使用。对于希望仅对“<path>”部分进行路径匹配的用户,此选项应为 true。
- typed_per_filter_config
(repeated map<string, Any>) 此字段可用于提供 RouteConfiguration 级别上的每个过滤器配置。键应与 过滤器配置名称 匹配。有关详细信息,请参见 Http 过滤器路由特定配置。
- metadata
(config.core.v3.Metadata) metadata 字段可用于提供有关路由配置的其他信息。它可用于配置、统计信息和日志记录。元数据应在需要它的过滤器命名空间下。例如,如果元数据用于路由过滤器,则过滤器名称应指定为
envoy.filters.http.router
。
config.route.v3.Vhds
{
"config_source": {...}
}
- config_source
(config.core.v3.ConfigSource, REQUIRED) VHDS 的配置源指定器。