Azure Front Door 規則集由規則組成,這些規則結合相符條件和動作。 本文針對您可以在規則集中使用的動作提供詳細描述。 動作會定義要套用至相符條件所識別要求類型的行為。 在規則集中,一個規則最多可有五個動作。 在規則集動作中,Front Door 也支援伺服器變數。
下列動作適用於規則集:
路由設定覆寫
路由設定覆寫動作是用來覆寫要求的來源群組或快取設定。 您可以選擇覆寫或遵循路由中指定的來源群組組態。 不過,覆寫路由設定時,您必須設定快取。 否則,要求的快取會停用。
您也可以覆寫特定要求的檔案快取方式,包括:
- 覆寫來源指定的快取行為。
- 如何使用查詢字串參數來產生要求的快取金鑰。
- 存留時間 (TTL) 值,以控制內容保留在快取中的時間長度。
屬性
| 屬性 | 支援值 |
|---|---|
| 覆寫來源群組 |
|
| Caching |
|
當 [覆寫來源群組] 設定為 [是] 時,請設定下列屬性:
| 屬性 | 支援值 |
|---|---|
| 原始群組 | 要求應路由至的來源群組。 此設定會覆寫 Front Door 端點路由中指定的組態。 |
| 轉寄通訊協定 | 將要求轉送至來源時要使用的 Front Door 通訊協定。 支援的值為僅 HTTP、僅 HTTPS、比對傳入要求。 此設定會覆寫 Front Door 端點路由中指定的組態。 |
當「快取」 設定為「啟用」 時,請設定下列屬性:
| 屬性 | 支援值 |
|---|---|
| 查詢字串快取行為 |
|
| 查詢參數 | 查詢字串參數名稱清單 (以逗號分隔)。 只有在 [查詢字串快取行為] 設定為 [忽略指定的查詢字串] 或 [包含指定的查詢字串] 時,才會設定此屬性。 |
| 壓縮 |
|
| 快取行為 |
|
| 快取持續時間 | 當 [快取行為] 設定為 Override always 或 Override if origin missing 時,這些欄位必須指定要使用的快取持續時間。 最大持續時間為 366 天。 只有在 [快取行為] 設定為 [一律覆寫] 或 [若來源遺失時進行覆寫] 時,才會設定這個屬性。
|
範例
在此範例中,我們會將所有已比對的要求路由至名為 MyOriginGroup 的來源群組,而不論 Front Door 端點路由中的設定為何。
在此範例中,我們會設定快取金鑰以包含名為 customerId 的查詢字串參數。 啟用壓縮,並遵循源端的快取原則。
在此範例中,我們將對於尚未指定快取時間的相符要求,將快取過期時間覆寫為 6 小時。 Front Door 會在判斷快取金鑰時忽略查詢字串,並啟用壓縮。
修改要求標頭
使用 [修改要求標頭] 動作,在要求傳送至您的來源時修改要求中的標頭。
屬性
| 屬性 | 支援值 |
|---|---|
| 運算子 |
|
| 標頭名稱 | 要修改的標頭名稱。 |
| 標頭值 | 要附加或覆寫的值。 |
範例
在此範例中,我們會將值 AdditionalValue 附加至 MyRequestHeader 要求標頭。 如果來源將回應標頭設定為 ValueSetByClient 的值,則套用此動作之後,要求標頭的值會是 ValueSetByClientAdditionalValue。
注意
某些 Azure Front Door 的保留標頭無法透過規則引擎動作進行修改,這包括修改要求標頭和回應標頭的動作。 以下保留標頭清單以及任何以 x-ec 和 x-fd 為前綴的標頭均無法進行修改。
Accept-RangesHostConnectionContent-LengthTransfer-EncodingTELast-ModifiedKeep-AliveExpectUpgradeIf-Modified-SinceIf-Unmodified-SinceIf-None-MatchIf-MatchRangeIf-RangeX-Ms-ViaX-Ms-Force-RefreshX-MSEdge-RefWarningForwardedViaX-Forwarded-ForX-Forwarded-ProtoX-Forwarded-HostX-Azure-RequestChainX-Azure-FDIDX-Azure-RequestChainv2X-Azure-Ref
修改回應標頭
使用 [修改回應標頭] 動作來修改回應中存在的標頭,再將其傳回您的用戶端。
屬性
| 屬性 | 支援值 |
|---|---|
| 運算子 |
|
| 標頭名稱 | 要修改的標頭名稱。 |
| 標頭值 | 要附加或覆寫的值。 |
範例
在此範例中,我們會先從回應中刪除名為 X-Powered-By 的標頭,再將其傳回用戶端。
注意
某些 Azure Front Door 的保留標頭無法透過規則引擎動作進行修改,這包括修改要求標頭和回應標頭的動作。 以下保留標頭清單以及任何以 x-ec 和 x-fd 為前綴的標頭均無法進行修改。
Accept-RangesHostConnectionContent-LengthTransfer-EncodingTELast-ModifiedKeep-AliveExpectUpgradeIf-Modified-SinceIf-Unmodified-SinceIf-None-MatchIf-MatchRangeIf-RangeX-Ms-ViaX-Ms-Force-RefreshX-MSEdge-RefWarningForwardedViaX-Forwarded-ForX-Forwarded-ProtoX-Forwarded-HostX-Azure-RequestChainX-Azure-FDIDX-Azure-RequestChainv2X-Azure-Ref
URL 重新導向
使用 [URL 重新導向] 動作將用戶端重新導向至新的 URL。 用戶端會從 Front Door 收到重新導向回應。 Azure Front Door 支援使用 {url_path:seg#} 伺服器變數動態擷取 URL 路徑,並使用 {url_path.tolower} 或 {url_path.toupper} 將 URL 路徑轉換成小寫或大寫。 如需詳細資訊,請參閱伺服器變數。
屬性
| 屬性 | 支援值 |
|---|---|
| 重新導向類型 | 要回傳給請求者的回應類型。
|
| 重新導向通訊協定 |
|
| 目的地主機 | 您希望將請求重新導向至的主機名稱。 保留空白以保留傳入主機。 |
| 目的地路徑 | 要在重新導向中使用的路徑。 包含前置 /。 保持空白以保留傳入路徑。 |
| 查詢字串 | 重新導向中使用的查詢字串。 請勿包含前置 ?。 保持空白以保留傳入查詢字串。 |
| 目的地片段 | 要在重新導向中使用的片段。 保持空白以保留傳入片段。 |
範例
在此範例中,我們會將要求重新導向至 https://contoso.com/exampleredirection?clientIp={client_ip},並同時保留該片段。 使用了 HTTP 暫時重新導向 (307)。 使用 {client_ip}client_ip,以用戶端的 IP 位址取代 URL 中的 權杖。
URL 重寫
使用 [URL 重寫] 功能,重寫發送至原始伺服器的請求路徑。 Azure Front Door 支援使用 {url_path:seg#} 伺服器變數動態擷取 URL 路徑,並使用 {url_path.tolower} 或 {url_path.toupper} 將 URL 路徑轉換成小寫或大寫。 如需詳細資訊,請參閱伺服器變數。
屬性
| 屬性 | 支援值 |
|---|---|
| 來源模式 | 在 URL 路徑中定義要取代的來源模式。 目前,來源模式使用基於前置詞的比對。 若要比對所有 URL 路徑,請使用正斜線 (/) 作為來源模式值。 請注意,在路由設定中,只有符合模式之後的路徑才會被考慮作為來源模式。 如需詳細資訊,請參閱 來源模式。 |
| 目的地 | 定義要在重寫中使用的目的地路徑。 目的地路徑會覆寫來源模式。 |
| 保留未比對的路徑 | 如果設定為 [是],則來源模式後面的其餘路徑會附加至新的目的地路徑。 |
範例
在此範例中,我們會將所有要求重寫至路徑 /redirection,而不會保留路徑的其餘部分。
重要
Azure Front Door(經典版)將於 2027 年 3 月 31 日退休。 由於該服務即將退休,不再支援設定檔建立、新網域導入或管理憑證。 為避免服務中斷,遷移至Azure Front Door標準版或高級版。 如需詳細資訊,請參閱 Azure Front Door (傳統版) 淘汰。
在 Azure Front Door (傳統) 中,一個規則引擎最多可以由 25 個規則所組成,其中包含比對條件和相關聯的動作。 本文針對您可以在規則中定義的每個動作提供詳細描述。
動作定義了會套用於符合條件或一組比對條件之請求類型的行為。 在規則引擎設定中,一個規則最多可以有 10 個比對條件和 5 個動作。 在單一規則中,您只能有一個覆寫路由設定動作。
下列動作可用於規則引擎設定。
修改要求標頭
使用這些動作來修改在傳送至後端的要求中存在的標頭。
必填欄位
| 動作 | HTTP 標頭名稱 | 值 |
|---|---|---|
| 附加 | 若已選取此選項且符合規則,在 [標頭名稱] 中指定的標頭會新增至具有指定值的要求。 如果標頭已存在,此值就會附加至現有的值。 | 繩子 |
| 覆寫 | 若已選取此選項且符合規則,在 [標頭名稱] 中指定的標頭會新增至具有指定值的要求。 如果標頭已存在,指定的值就會覆寫現有的值。 | 繩子 |
| 刪除 | 當選取此選項、規則符合,且規則中指定的標頭存在時,會從要求中刪除此標頭。 | 繩子 |
修改回應標頭
使用這些動作來修改在傳回用戶端的回應中存在的標頭。
必填欄位
| 動作 | HTTP 標頭名稱 | 值 |
|---|---|---|
| 附加 | 當選取此選項且符合規則時,會使用指定的 [值],將 [標頭名稱] 中指定的標頭新增至回應。 如果標頭已存在,[值] 就會附加至現有的值。 | 繩子 |
| 覆寫 | 若已選取此選項且符合規則,則會使用指定的 [值],將 [標頭名稱] 中指定的標頭新增至回應。 如果標頭已存在,[值] 就會覆寫現有的值。 | 繩子 |
| 刪除 | 當選取此選項、規則符合,且規則中指定的標頭存在時,會從回應中刪除此標頭。 | 繩子 |
路由組態覆寫
路由類型:重新導向
使用這些動作將用戶端重新導向至新的 URL。
必填欄位
| 欄位 | 描述 |
|---|---|
| 重新導向類型 | 重新導向是將使用者/用戶端從一個 URL 傳送至另一個的方式。 重新導向類型會設定用戶端所使用的狀態碼,以了解重新導向的用途。 您可以選取下列重新導向狀態碼:找到 (302)、已移動 (301)、暫時重新導向 (307),以及永久重新導向 (308)。 |
| 重新導向通訊協定 | 依據傳入要求保留通訊協定,或定義重新導向的新通訊協定。 例如,針對 HTTP 至 HTTPS 重新導向選取 [HTTPS]。 |
| 目的地主機 | 設定此值以變更重新導向 URL 中的主機名稱,否則會保留來自傳入要求的主機名稱。 |
| 目的地路徑 | 依據傳入要求保留路徑,或更新重新導向 URL 中的路徑。 |
| 查詢字串 | 設定此值以取代來自傳入要求 URL 的任何現有查詢字串,否則會保留原始查詢字串集。 |
| 目的地片段 | 目的地片段為 URL '#' 後方的那部份,瀏覽器通常會用以登陸網頁上的特定區段。 設定此值以將片段新增至重新導向 URL。 |
路由類型:轉送
使用這些動作將用戶端轉送至新的 URL。 這些動作也包含 URL 重寫和快取的子動作。
| 欄位 | 描述 |
|---|---|
| 後端集區 | 選取要覆寫並提供要求服務的後端集區,您會看到 Front Door 設定檔中所有目前預先設定的後端集區。 |
| 轉寄通訊協定 | 用於將請求轉發至後端的協議,或用於匹配來自傳入請求的協議。 |
| URL 重寫 | 在建構讓 URL 重寫以轉送到後端的要求時,要使用的路徑。 |
| Caching | 針對此路由規則啟用快取。 啟用時,Azure Front Door 會快取您的靜態內容。 |
URL 重寫
使用此設定來設定選擇性 [自訂轉送路徑],以在建構要轉送至後端的要求時使用。
| 欄位 | 描述 |
|---|---|
| 自訂轉送路徑 | 定義要求轉送至的路徑。 |
Caching
使用這些設定可控制含有查詢字串之要求的檔案快取方式。 根據所有參數還是選取的參數來快取您的內容。 您可以使用這些設定來覆寫存留時間 (TTL) 值,以控制內容保留在快取中的時間長度。 若要強制以快取作為動作,請將快取欄位設定為 [已啟用]。強制快取時,會出現下列選項:
| 快取行為 | 描述 |
|---|---|
| 忽略查詢字串 | 快取資產後,所有隨後要求都會忽略查詢字串,直到所快取的資產到期為止。 |
| 使用查詢字串 | 每個具有唯一 URL (包含查詢字串) 的要求都會被視為具有專屬快取的唯一資產。 |
| 忽略指定的查詢字串 | 快取會忽略 [查詢參數] 設定中所列的請求 URL 查詢字串。 |
| 包含指定的查詢字串 | 「查詢參數」設定中列出的要求 URL 查詢字串會用於快取。 |
| 其他欄位 | 描述 |
|---|---|
| 動態壓縮 | Front Door 可在邊緣動態壓縮內容,因而產生較小且更快速的回應。 |
| 查詢參數 | 以逗號分隔的允許或不允許參數清單,可作為快取依據。 |
| 使用預設的快取持續時間 | 設定使用 Azure Front Door 的預設快取持續時間,或指定一個快取持續時間以忽略來源的回應指令。 |
下一步
- 了解如何設定您的第一個規則集。
- 深入了解規則集比對條件。
- 深入了解 Azure Front Door 規則集。