共用方式為


規則集動作

Azure Front Door 規則集是由包含了比對條件和動作組合的規則所組成。 本文針對您可以在規則集中使用的動作提供詳細描述。 動作可定義要套用至比對條件所識別要求類型的行為。 在規則集中,一個規則最多可有五個動作。 在規則集動作中,Front Door 也支援伺服器變數

下列動作適用於規則集:

路由設定覆寫

路由設定覆寫動作是用來覆寫要求的來源群組或快取設定。 您可以選擇覆寫或接受路由中指定的來源群組設定。 不過,覆寫路由設定時,您必須設定快取。 否則,會停用要求的快取。

您也可以覆寫針對特定要求快取檔案的方式,包括:

  • 覆寫來源所指定的快取行為。
  • 如何使用查詢字串參數來產生要求的快取金鑰。
  • 存留時間 (TTL) 值,以控制內容保留在快取中的時間長度。

屬性

屬性 支援值
覆寫來源群組
  • 是:覆寫用於要求的來源群組。
  • 否:使用路由中指定的來源群組。
快取功能
  • 啟用:強制啟用要求的快取。
  • 停用:強制停用要求的快取。

當 [覆寫來源群組] 設定為 [是] 時,請設定下列屬性:

屬性 支援值
原始群組 應該將要求透過路由傳送至其中的來源群組。 此設定會覆寫 Front Door 端點路由中指定的設定。
轉寄通訊協定 將要求轉送至來源時要使用的 Front Door 通訊協定。 支援的值包括 [僅限 HTTP]、[僅限 HTTPS]、[符合傳入要求]。 此設定會覆寫 Front Door 端點路由中指定的設定。

當 [快取] 設定為 [啟用] 時,請設定下列屬性:

屬性 支援值
查詢字串快取行為
  • 忽略查詢字串:產生快取金鑰時,不會考慮查詢字串。 在 ARM 範本中,將 queryStringCachingBehavior 屬性設定為 IgnoreQueryString
  • 使用查詢字串:每個唯一 URL 都有自己的快取金鑰。 在 ARM 範本中,使用 UseQueryStringqueryStringCachingBehavior
  • 忽略指定的查詢字串:產生快取金鑰時,會排除參數中指定的查詢字串。 在 ARM 範本中,將 queryStringCachingBehavior 屬性設定為 IgnoreSpecifiedQueryStrings
  • 包含指定的查詢字串:產生快取金鑰時,會包含參數中指定的查詢字串。 在 ARM 範本中,將 queryStringCachingBehavior 屬性設定為 IncludeSpecifiedQueryStrings
查詢參數 查詢字串參數名稱清單 (以逗號分隔)。 只有在 [查詢字串快取行為] 設定為 [忽略指定的查詢字串] 或 [包含指定的查詢字串] 時,才會設定此屬性。
壓縮
  • 啟用:Front Door 可在邊緣動態壓縮內容,因而產生較小且更快速的回應。 如需詳細資訊,請參閱檔案壓縮。 在 ARM 範本中,將 isCompressionEnabled 屬性設定為 Enabled
  • Disabled. Front Door 不會執行壓縮。 在 ARM 範本中,將 isCompressionEnabled 屬性設定為 Disabled
快取行為
  • 接受來源:Front Door 一律會接受來源回應標頭指示詞。 如果遺漏 Origin 指示詞,則 Front Door 會快取 1 到 3 天之間的內容。 在 ARM 範本中,將 cacheBehavior 屬性設定為 HonorOrigin
  • 一律覆寫:從來源傳回的 TTL 值會以動作中指定的值覆寫。 僅在可快取回應時,才會套用此行為。 在 ARM 範本中,將 cacheBehavior 屬性設定為 OverrideAlways
  • 若來源遺失時進行覆寫:如果未從來源傳回 TTL 值,則規則會將 TTL 設定為動作中指定的值。 僅在可快取回應時,才會套用此行為。 在 ARM 範本中,將 cacheBehavior 屬性設定為 OverrideIfOriginMissing
快取持續時間 當 [快取行為] 設定為 Override alwaysOverride if origin missing 時,這些欄位必須指定要使用的快取持續時間。 最大持續時間為 366 天。 只有在 [快取行為] 設定為 [一律覆寫] 或 [若來源遺失時進行覆寫] 時,才會設定這個屬性。
  • 在 Azure 入口網站中:指定日、小時、分鐘和秒。
  • 在 ARM 範本中:使用 cacheDurationd.hh:mm:ss 格式指定持續時間。

範例

在此範例中,我們會將所有已比對的要求路由至名為 MyOriginGroup 的來源群組,而不論 Front Door 端點路由中的設定為何。

顯示來源群組覆寫動作的入口網站螢幕擷取畫面。

在此範例中,我們會設定快取金鑰以包含名為 customerId 的查詢字串參數。 啟用壓縮,並接受來源的快取原則。

顯示快取索引鍵查詢字串動作的入口網站螢幕擷取畫面。

在此範例中,我們會針對尚未指定快取持續時間的相符要求,將快取逾期覆寫為 6 小時。 Front Door 會在判斷快取金鑰時忽略查詢字串,並啟用壓縮。

顯示快取到期動作的入口網站螢幕擷取畫面。

修改要求標頭

使用 [修改要求標頭] 動作,在要求傳送至您的來源時修改要求中的標頭。

屬性

屬性 支援值
運算子
  • 附加:指定的標頭會使用指定的值新增至要求。 如果標頭已存在,該值就會使用字串串連附加至現有的標頭值。 未新增分隔符號。 在 ARM 範本中,使用 AppendheaderAction
  • 覆寫:指定的標頭會使用指定的值新增至要求。 如果標頭已存在,指定的值就會覆寫現有的值。 在 ARM 範本中,使用 OverwriteheaderAction
  • 刪除:如果規則中指定的標頭存在,則會從要求中刪除此標頭。 在 ARM 範本中,使用 DeleteheaderAction
標頭名稱 要修改的標頭名稱。
標頭值 要附加或覆寫的值。

範例

在此範例中,我們會將值 AdditionalValue 附加至 MyRequestHeader 要求標頭。 如果來源將回應標頭設定為 ValueSetByClient 的值,則套用此動作之後,要求標頭的值會是 ValueSetByClientAdditionalValue

顯示修改要求標頭動作的入口網站螢幕擷取畫面。

注意

某些 Azure Front Door 保留標頭無法使用規則引擎動作來進行修改,包括修改要求標頭和回應標頭的動作。 以下保留標頭清單以及任何以 x-ecx-fd 為前綴的標頭均無法進行修改。

  • Accept-Ranges
  • Host
  • Connection
  • Content-Length
  • Transfer-Encoding
  • TE
  • Last-Modified
  • Keep-Alive
  • Expect
  • Upgrade
  • If-Modified-Since
  • If-Unmodified-Since
  • If-None-Match
  • If-Match
  • Range
  • If-Range
  • X-Ms-Via
  • X-Ms-Force-Refresh
  • X-MSEdge-Ref
  • Warning
  • Forwarded
  • Via
  • X-Forwarded-For
  • X-Forwarded-Proto
  • X-Forwarded-Host
  • X-Azure-RequestChain
  • X-Azure-FDID
  • X-Azure-RequestChainv2
  • X-Azure-Ref

修改回應標頭

使用 [修改回應標頭] 動作來修改回應中存在的標頭,再將其傳回您的用戶端。

屬性

屬性 支援值
運算子
  • 附加:指定的標頭會以指定的值新增至回應。 如果標頭已存在,該值就會使用字串串連附加至現有的標頭值。 未新增分隔符號。 在 ARM 範本中,使用 AppendheaderAction
  • 覆寫:指定的標頭會以指定的值新增至回應。 如果標頭已存在,指定的值就會覆寫現有的值。 在 ARM 範本中,使用 OverwriteheaderAction
  • 刪除:如果規則中指定的標頭存在,則會從回應中刪除此標頭。 在 ARM 範本中,使用 DeleteheaderAction
標頭名稱 要修改的標頭名稱。
標頭值 要附加或覆寫的值。

範例

在此範例中,我們會先從回應中刪除名為 X-Powered-By 的標頭,再將其傳回用戶端。

顯示修改回應標頭動作的入口網站螢幕擷取畫面。

注意

某些 Azure Front Door 保留標頭無法使用規則引擎動作來進行修改,包括修改要求標頭和回應標頭的動作。 以下保留標頭清單以及任何以 x-ecx-fd 為前綴的標頭均無法進行修改。

  • Accept-Ranges
  • Host
  • Connection
  • Content-Length
  • Transfer-Encoding
  • TE
  • Last-Modified
  • Keep-Alive
  • Expect
  • Upgrade
  • If-Modified-Since
  • If-Unmodified-Since
  • If-None-Match
  • If-Match
  • Range
  • If-Range
  • X-Ms-Via
  • X-Ms-Force-Refresh
  • X-MSEdge-Ref
  • Warning
  • Forwarded
  • Via
  • X-Forwarded-For
  • X-Forwarded-Proto
  • X-Forwarded-Host
  • X-Azure-RequestChain
  • X-Azure-FDID
  • X-Azure-RequestChainv2
  • X-Azure-Ref

URL 重新導向

使用 [URL 重新導向] 動作將用戶端重新導向至新的 URL。 用戶端會從 Front Door 收到重新導向回應。 Azure Front Door 支援使用 {url_path:seg#} 伺服器變數動態擷取 URL 路徑,並使用 {url_path.tolower}{url_path.toupper} 將 URL 路徑轉換成小寫或大寫。 如需詳細資訊,請參閱伺服器變數

屬性

屬性 支援值
重新導向類型 要傳回給要求者的回應類型。
  • 在 Azure 入口網站中:找到 (302)、已移動 (301)、暫時重新導向 (307)、永久重新導向 (308)。
  • 在 ARM 範本中:FoundMovedTemporaryRedirectPermanentRedirect
重新導向通訊協定
  • 在 Azure 入口網站中:Match RequestHTTPHTTPS
  • 在 ARM 範本中:MatchRequestHttpHttps
目的地主機 您要將要求重新導向至其中的主機名稱。 保持空白以保留傳入主機。
目的地路徑 要在重新導向中使用的路徑。 包含前置 /。 保持空白以保留傳入路徑。
查詢字串 要在重新導向中使用的查詢字串。 請勿包含前置 ?。 保持空白以保留傳入查詢字串。
目的地片段 要在重新導向中使用的片段。 保持空白以保留傳入片段。

範例

在此範例中,我們會將要求重新導向至 https://contoso.com/exampleredirection?clientIp={client_ip},並同時保留該片段。 使用了 HTTP 暫時重新導向 (307)。 使用 client_ip 伺服器變數,以用戶端的 IP 位址來取代 URL 中的 {client_ip} 權杖。

顯示 URL 重新導向動作的入口網站螢幕擷取畫面。

URL 重寫

使用 [URL 重寫] 動作,針對正要透過路由傳送至來源的要求重寫其路徑。 Azure Front Door 支援使用 {url_path:seg#} 伺服器變數動態擷取 URL 路徑,並使用 {url_path.tolower}{url_path.toupper} 將 URL 路徑轉換成小寫或大寫。 如需詳細資訊,請參閱伺服器變數

屬性

屬性 支援值
來源模式 在 URL 路徑中定義要取代的來源模式。 目前,來源模式使用基於前置詞的比對。 若要比對所有 URL 路徑,請使用正斜線 (/) 作為來源模式值。
Destination 定義要在重寫中使用的目的地路徑。 目的地路徑會覆寫來源模式。
保留未比對的路徑 如果設定為 [是],則來源模式後面的其餘路徑會附加至新的目的地路徑。

範例

在此範例中,我們會將所有要求重寫至路徑 /redirection,而不會保留路徑的其餘部分。

顯示 URL 重寫動作的入口網站螢幕擷取畫面。

重要

Azure Front Door (傳統) 將於 2027 年 3 月 31 日遭到淘汰。 為了避免任何服務中斷,請務必在 2027 年 3 月之前,將 Azure Front Door (傳統) 設定檔移轉至 Azure Front Door 標準或進階層。 如需詳細資訊,請參閱 Azure Front Door (傳統版) 淘汰

在 Azure Front Door (傳統) 中,一個規則引擎最多可以由 25 個規則所組成,其中包含比對條件和相關聯的動作。 本文針對您可以在規則中定義的每個動作提供詳細描述。

動作可定義要套用至符合條件或一組比對條件之要求類型的行為。 在規則引擎設定中,一個規則最多可以有 10 個比對條件和 5 個動作。 在單一規則中,您只能有一個覆寫路由設定動作。

下列動作可用於規則引擎設定。

修改要求標頭

使用這些動作來修改在傳送至後端的要求中存在的標頭。

必填欄位

動作 HTTP 標頭名稱
附加 若已選取此選項且符合規則,在 [標頭名稱] 中指定的標頭會新增至具有指定值的要求。 如果標頭已存在,此值就會附加至現有的值。 String
覆寫 若已選取此選項且符合規則,在 [標頭名稱] 中指定的標頭會新增至具有指定值的要求。 如果標頭已存在,指定的值就會覆寫現有的值。 String
刪除 當選取此選項、規則符合,且規則中指定的標頭存在時,會從要求中刪除此標頭。 String

修改回應標頭

使用這些動作來修改在傳回用戶端的回應中存在的標頭。

必填欄位

動作 HTTP 標頭名稱
附加 當選取此選項且符合規則時,會使用指定的 [值],將 [標頭名稱] 中指定的標頭新增至回應。 如果標頭已存在,[值] 就會附加至現有的值。 String
覆寫 若已選取此選項且符合規則,則會使用指定的 [值],將 [標頭名稱] 中指定的標頭新增至回應。 如果標頭已存在,[值] 就會覆寫現有的值。 String
刪除 當選取此選項、規則符合,且規則中指定的標頭存在時,會從回應中刪除此標頭。 String

路由組態覆寫

路由類型:重新導向

使用這些動作將用戶端重新導向至新的 URL。

必填欄位

欄位 描述
重新導向類型 重新導向是將使用者/用戶端從一個 URL 傳送至另一個的方式。 重新導向類型會設定用戶端所使用的狀態碼,以了解重新導向的用途。

您可以選取下列重新導向狀態碼:找到 (302)、已移動 (301)、暫時重新導向 (307),以及永久重新導向 (308)。
重新導向通訊協定 依據傳入要求保留通訊協定,或定義重新導向的新通訊協定。 例如,針對 HTTP 至 HTTPS 重新導向選取 [HTTPS]。
目的地主機 設定此值以變更重新導向 URL 中的主機名稱,否則會保留來自傳入要求的主機名稱。
目的地路徑 依據傳入要求保留路徑,或更新重新導向 URL 中的路徑。
查詢字串 設定此值以取代來自傳入要求 URL 的任何現有查詢字串,否則會保留原始查詢字串集。
目的地片段 目的地片段為 URL '#' 後方的那部份,瀏覽器通常會用以登陸網頁上的特定區段。 設定此值以將片段新增至重新導向 URL。

路由類型:轉送

使用這些動作將用戶端轉送至新的 URL。 這些動作也包含 URL 重寫和快取的子動作。

欄位 描述
後端集區 選取後端集區來覆寫並提供要求,您會看到目前在 Front Door 設定檔中所有預先設定的後端集區。
轉寄通訊協定 要用來將要求轉送至後端或要與來自傳入要求之通訊協定比對的通訊協定。
URL 重寫 在建構讓 URL 重寫以轉送到後端的要求時,要使用的路徑。
快取功能 針對此路由規則啟用快取。 啟用時,Azure Front Door 會快取您的靜態內容。

URL 重寫

使用此設定來設定選擇性 [自訂轉送路徑],以在建構要轉送至後端的要求時使用。

欄位 描述
自訂轉送路徑 定義要求轉送至的路徑。

快取功能

使用這些設定來控制如何針對包含查詢字串的要求快取檔案。 根據所有參數還是選取的參數來快取您的內容。 您可以使用這些設定來覆寫存留時間 (TTL) 值,以控制內容保留在快取中的時間長度。 若要強制以快取作為動作,請將快取欄位設定為 [已啟用]。強制快取時,會出現下列選項:

快取行為 描述
忽略查詢字串 快取資產後,所有隨後要求都會忽略查詢字串,直到所快取的資產到期為止。
使用查詢字串 每個具有唯一 URL (包含查詢字串) 的要求都會被視為具有專屬快取的唯一資產。
忽略指定的查詢字串 快取會忽略 [查詢參數] 設定中所列的要求 URL 查詢字串。
包含指定的查詢字串 [查詢參數] 設定中所列的要求 URL 查詢字串會用於快取。
其他欄位 描述
動態壓縮 Front Door 可在邊緣動態壓縮內容,因而產生較小且更快速的回應。
查詢參數 允許或不允許的參數逗點分隔清單,可作為快取的基礎。
使用預設的快取持續時間 設定以使用 Azure Front Door 預設的快取持續時間,或定義忽略來源回應指示詞的快取持續時間。

下一步