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_nameextensions.filters.network.http_connection_manager.v3.Rds 中匹配。

virtual_hosts

(repeated config.route.v3.VirtualHost) 构成路由表的虚拟主机数组。

vhds

(config.route.v3.Vhds) 将通过 VHDS API 动态加载一组虚拟主机。在存在的情况下,将使用 virtual_hostsvhds 字段。 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.VirtualHostconfig.route.v3.RouteAction 的标头之后应用。有关更多信息,包括标头值语法的详细信息,请参见有关 自定义请求标头 的文档。

response_headers_to_remove

(repeated string) 指定应从连接管理器编码的每个响应中删除的 HTTP 标头列表。

request_headers_to_add

(repeated config.core.v3.HeaderValueOption) 指定应添加到 HTTP 连接管理器路由的每个请求的 HTTP 标头列表。在此级别指定的标头在来自任何封闭 config.route.v3.VirtualHostconfig.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.route.v3.Vhds proto]

{
  "config_source": {...}
}
config_source

(config.core.v3.ConfigSource, REQUIRED) VHDS 的配置源指定器。