.. _envoy_v3_api_file_envoy/config/route/v3/route.proto: HTTP route configuration (proto) ================================ * Routing :ref:`architecture overview ` * HTTP :ref:`router filter ` .. _envoy_v3_api_msg_config.route.v3.RouteConfiguration: config.route.v3.RouteConfiguration ---------------------------------- :repo:`[config.route.v3.RouteConfiguration proto] ` .. code-block:: json :force: { "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": ... } .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.name: name (`string `_) The name of the route configuration. For example, it might match :ref:`route_config_name ` in :ref:`envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.Rds`. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.virtual_hosts: virtual_hosts (**repeated** :ref:`config.route.v3.VirtualHost `) An array of virtual hosts that make up the route table. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.vhds: vhds (:ref:`config.route.v3.Vhds `) An array of virtual hosts will be dynamically loaded via the VHDS API. Both ``virtual_hosts`` and ``vhds`` fields will be used when present. ``virtual_hosts`` can be used for a base routing table or for infrequently changing virtual hosts. ``vhds`` is used for on-demand discovery of virtual hosts. The contents of these two fields will be merged to generate a routing table for a given RouteConfiguration, with ``vhds`` derived configuration taking precedence. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.internal_only_headers: internal_only_headers (**repeated** `string `_) Optionally specifies a list of HTTP headers that the connection manager will consider to be internal only. If they are found on external requests they will be cleaned prior to filter invocation. See :ref:`config_http_conn_man_headers_x-envoy-internal` for more information. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.response_headers_to_add: response_headers_to_add (**repeated** :ref:`config.core.v3.HeaderValueOption `) Specifies a list of HTTP headers that should be added to each response that the connection manager encodes. Headers specified at this level are applied after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`. For more information, including details on header value syntax, see the documentation on :ref:`custom request headers `. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.response_headers_to_remove: response_headers_to_remove (**repeated** `string `_) Specifies a list of HTTP headers that should be removed from each response that the connection manager encodes. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.request_headers_to_add: request_headers_to_add (**repeated** :ref:`config.core.v3.HeaderValueOption `) Specifies a list of HTTP headers that should be added to each request routed by the HTTP connection manager. Headers specified at this level are applied after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`. For more information, including details on header value syntax, see the documentation on :ref:`custom request headers `. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.request_headers_to_remove: request_headers_to_remove (**repeated** `string `_) Specifies a list of HTTP headers that should be removed from each request routed by the HTTP connection manager. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.most_specific_header_mutations_wins: most_specific_header_mutations_wins (`bool `_) By default, headers that should be added/removed are evaluated from most to least specific: * route level * virtual host level * connection manager level To allow setting overrides at the route or virtual host level, this order can be reversed by setting this option to true. Defaults to false. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.validate_clusters: validate_clusters (`BoolValue `_) An optional boolean that specifies whether the clusters that the route table refers to will be validated by the cluster manager. If set to true and a route refers to a non-existent cluster, the route table will not load. If set to false and a route refers to a non-existent cluster, the route table will load and the router filter will return a 404 if the route is selected at runtime. This setting defaults to true if the route table is statically defined via the :ref:`route_config ` option. This setting default to false if the route table is loaded dynamically via the :ref:`rds ` option. Users may wish to override the default behavior in certain cases (for example when using CDS with a static route table). .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.max_direct_response_body_size_bytes: max_direct_response_body_size_bytes (`UInt32Value `_) The maximum bytes of the response :ref:`direct response body ` size. If not specified the default is 4096. .. warning:: Envoy currently holds the content of :ref:`direct response body ` in memory. Be careful setting this to be larger than the default 4KB, since the allocated memory for direct response body is not subject to data plane buffering controls. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins: cluster_specifier_plugins (**repeated** :ref:`config.route.v3.ClusterSpecifierPlugin `) A list of plugins and their configurations which may be used by a :ref:`cluster specifier plugin name ` within the route. All ``extension.name`` fields in this list must be unique. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.request_mirror_policies: request_mirror_policies (**repeated** :ref:`config.route.v3.RouteAction.RequestMirrorPolicy `) Specify a set of default request mirroring policies which apply to all routes under its virtual hosts. Note that policies are not merged, the most specific non-empty one becomes the mirror policies. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.ignore_port_in_host_matching: ignore_port_in_host_matching (`bool `_) By default, port in :authority header (if any) is used in host matching. With this option enabled, Envoy will ignore the port number in the :authority header (if any) when picking VirtualHost. NOTE: this option will not strip the port number (if any) contained in route config :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`.domains field. .. _envoy_v3_api_field_config.route.v3.RouteConfiguration.ignore_path_parameters_in_path_matching: ignore_path_parameters_in_path_matching (`bool `_) Ignore path-parameters in path-matching. Before RFC3986, URI were like(RFC1808): :///;?# Envoy by default takes ":path" as ";". For users who want to only match path on the "" portion, this option should be true. .. _envoy_v3_api_msg_config.route.v3.Vhds: config.route.v3.Vhds -------------------- :repo:`[config.route.v3.Vhds proto] ` .. code-block:: json :force: { "config_source": {...} } .. _envoy_v3_api_field_config.route.v3.Vhds.config_source: config_source (:ref:`config.core.v3.ConfigSource `, *REQUIRED*) Configuration source specifier for VHDS.