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_hosts
和vhds
欄位都存在時,會同時使用。virtual_hosts
可用於基本路由表或不常變更的虛擬主機。vhds
用於虛擬主機的隨需探索。這兩個欄位的內容將會合併,以為給定的 RouteConfiguration 產生路由表,其中以vhds
衍生的組態優先。
- internal_only_headers
(重複 字串) 可選擇指定連線管理員會視為僅限內部使用的 HTTP 標頭清單。如果在外部請求中找到這些標頭,會在篩選器調用之前清除這些標頭。如需更多資訊,請參閱 x-envoy-internal。
- response_headers_to_add
(重複 config.core.v3.HeaderValueOption) 指定應該新增到連線管理員編碼的每個回應的 HTTP 標頭清單。在此層級指定的標頭會在任何封閉的 config.route.v3.VirtualHost 或 config.route.v3.RouteAction 中的標頭之後套用。如需更多資訊,包括標頭值語法的詳細資料,請參閱關於 自訂請求標頭 的文件。
- response_headers_to_remove
(重複 字串) 指定應該從連線管理員編碼的每個回應中移除的 HTTP 標頭清單。
- request_headers_to_add
(重複 config.core.v3.HeaderValueOption) 指定應該新增到 HTTP 連線管理員路由的每個請求的 HTTP 標頭清單。在此層級指定的標頭會在任何封閉的 config.route.v3.VirtualHost 或 config.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_source": {...}
}
- config_source
(config.core.v3.ConfigSource,必要) VHDS 的設定來源指定器。