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

(字串) 路由設定的名稱。例如,它可能與 extensions.filters.network.http_connection_manager.v3.Rds 中的 route_config_name 相符。

virtual_hosts

(重複 config.route.v3.VirtualHost) 組成路由表的虛擬主機陣列。

vhds

(config.route.v3.Vhds) 虛擬主機陣列將透過 VHDS API 動態載入。當 virtual_hostsvhds 欄位都存在時,會同時使用。 virtual_hosts 可用於基本路由表或不常變更的虛擬主機。 vhds 用於虛擬主機的隨需探索。這兩個欄位的內容將會合併,以為給定的 RouteConfiguration 產生路由表,其中以 vhds 衍生的組態優先。

internal_only_headers

(重複 字串) 可選擇指定連線管理員會視為僅限內部使用的 HTTP 標頭清單。如果在外部請求中找到這些標頭,會在篩選器調用之前清除這些標頭。如需更多資訊,請參閱 x-envoy-internal

response_headers_to_add

(重複 config.core.v3.HeaderValueOption) 指定應該新增到連線管理員編碼的每個回應的 HTTP 標頭清單。在此層級指定的標頭會在任何封閉的 config.route.v3.VirtualHostconfig.route.v3.RouteAction 中的標頭之後套用。如需更多資訊,包括標頭值語法的詳細資料,請參閱關於 自訂請求標頭 的文件。

response_headers_to_remove

(重複 字串) 指定應該從連線管理員編碼的每個回應中移除的 HTTP 標頭清單。

request_headers_to_add

(重複 config.core.v3.HeaderValueOption) 指定應該新增到 HTTP 連線管理員路由的每個請求的 HTTP 標頭清單。在此層級指定的標頭會在任何封閉的 config.route.v3.VirtualHostconfig.route.v3.RouteAction 中的標頭之後套用。如需更多資訊,包括標頭值語法的詳細資料,請參閱關於 自訂請求標頭 的文件。

request_headers_to_remove

(重複 字串) 指定應該從 HTTP 連線管理員路由的每個請求中移除的 HTTP 標頭清單。

most_specific_header_mutations_wins

(布林值) 如果指定,會評估所有層級的標頭變更。依預設,順序是從最明確的(即路由項目層級)到最不明確的(即路由設定層級)。後續的標頭變更可能會覆寫先前的變更。此順序可以透過將此欄位設定為 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

(重複 config.route.v3.ClusterSpecifierPlugin) 可以在路由內的 叢集指定器外掛程式名稱 使用的外掛程式及其設定清單。此清單中的所有 extension.name 欄位都必須是唯一的。

request_mirror_policies

(重複 config.route.v3.RouteAction.RequestMirrorPolicy) 指定一組預設的請求鏡像原則,這些原則適用於其虛擬主機下的所有路由。請注意,原則不會合併,最明確的非空原則會成為鏡像原則。

ignore_port_in_host_matching

(布林值) 依預設,:authority 標頭中的埠(如果有的話)會用於主機比對。啟用此選項後,Envoy 在選取 VirtualHost 時會忽略 :authority 標頭中的埠號(如果有的話)。注意:此選項不會移除路由設定 config.route.v3.VirtualHost .domains 欄位中包含的埠號(如果有的話)。

ignore_path_parameters_in_path_matching

(布林值) 忽略路徑比對中的路徑參數。在 RFC3986 之前,URI 類似 (RFC1808):<scheme>://<net_loc>/<path>;<params>?<query>#<fragment> Envoy 預設將「:path」視為「<path>;<params>」。對於想要僅比對「<path>」部分的的使用者,此選項應為 true。

typed_per_filter_config

(重複 map<字串, Any>) 此欄位可用於提供 RouteConfiguration 層級的每個篩選器設定。金鑰應與 篩選器設定名稱 相符。有關詳細資訊,請參閱 HTTP 篩選器路由特定設定

metadata

(config.core.v3.Metadata) metadata 欄位可用於提供有關路由設定的其他資訊。它可用於設定、統計資料和記錄。metadata 應該放在需要它的篩選器命名空間下。例如,如果 metadata 是用於路由器篩選器,篩選器名稱應該指定為 envoy.filters.http.router

config.route.v3.Vhds

[config.route.v3.Vhds proto]

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

(config.core.v3.ConfigSource必要) VHDS 的設定來源指定器。