共用方式為


要求如何與路由設定進行比對

Azure Front Door 中的路由會定義傳入要求抵達 Azure Front Door 邊緣時,流量的處理方式。 路由設定會在網域與原始群組之間建立關聯。 藉由使用模式比對規則集進階功能,您可以更細微地控制後端資源的流量。

注意

使用 [Front Door 規則集] 時,您可以設定規則來針對要求覆寫原點群組。 規則集所設定的原點群組會覆寫本文中所述的路由流程。

重要

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

當要求抵達 Azure Front Door(傳統)邊緣時,第一個步驟之一是決定如何將比對要求路由傳送至後端資源,然後在路由設定中採取已定義的動作。 本文件說明 Front Door 如何決定處理要求時要使用的路由組態。

Front Door 路由設定的結構

Front Door 路由規則包含兩個主要部分:「左側」和「右側」。 Front Door 會比對路由左側的傳入要求,而右側則定義要求的處理方式。

連入比對 (左邊)

下列屬性會決定連入要求是否符合路由規則(左側):

  • HTTP 通訊協定 - HTTP 或 HTTPS
  • 網域 - 例如:www.foo.com、*.bar.com
  • 路徑 - 例如:/*、/users/*、/file.gif

這些屬性會在內部展開,讓通訊協定/網域/路徑的每個組合都是可能的相符集合。

路由決策 (右邊)

如何處理要求的決定取決於路由是否啟用快取。 如果快取的回應無法使用,要求會轉送至適當的來源。

路由比對

本節說明 Front Door 如何比對路由規則的要求。 基本原則是 Front Door 一律會評估「左側」屬性:通訊協定、網域和路徑,以該順序符合 最特定的要求

前端主機比對

Azure Front Door 會使用下列步驟來比對前端主機:

  1. 檢查前端主機上是否有完全相符的路由。
  2. 如果找不到完全相符專案,則會拒絕要求,並出現 404:不正確的要求錯誤。

下表說明三種不同的路由規則及其前端主機和路徑:

路由規則 前端主機 路徑
A foo.contoso.com /*
B foo.contoso.com /users/*
C www.fabrikam.com,foo.adventure-works.com /*、/images/*

下表顯示上表中路由規則的比對結果:

連入前端主機 相符的路由規則
foo.contoso.com A 和 B
www.fabrikam.com C
images.fabrikam.com 錯誤 404:不正確的要求
foo.adventure-works.com C
contoso.com 錯誤 404:不正確的要求
www.adventure-works.com 錯誤 404:不正確的要求
www.northwindtraders.com 錯誤 404:不正確的要求

路徑比對

在 Azure Front Door 判斷特定的前端主機並篩選可能的路由規則之後,它會根據要求路徑選取路由規則。 使用下列邏輯:

  1. 檢查與要求路徑完全相符的路由規則。
  2. 如果找不到完全相符專案,請尋找具有相符通配符路徑的路由規則。
  3. 如果找不到相符的路徑,要求會遭到拒絕,並出現 404:不正確的要求錯誤。

注意

萬用字元 * 僅適用於後面沒有任何其他字元的路徑。 此外,萬用字元 * 前面必須加上斜線 /。 沒有通配符的路徑會被視為完全相符的路徑。 以斜線 / 結尾的路徑也是完全相符的路徑。 請確定您的路徑遵循這些規則,以避免發生錯誤。

注意

  • 沒有通配符的路徑會被視為完全相符的路徑。 結尾為 / 的路徑也是完全相符的路徑。
  • 路徑模式不區分大小寫。 例如, /FOO/foo 會被視為重複專案,而且不允許在 [模式] 中比對設定。

下表列出路由規則及其前端主機和路徑組合:

路由規則 前端主機 路徑
A www.contoso.com /
B www.contoso.com /*
C www.contoso.com /ab
D www.contoso.com /abc
E www.contoso.com /abc/
F www.contoso.com /abc/*
G www.contoso.com /abc/def
H www.contoso.com /path/

下表顯示哪些路由規則符合 Azure Front Door 邊緣的傳入要求:

連入要求 相符的路由
www.contoso.com/ A
www.contoso.com/a B
www.contoso.com/ab C
www.contoso.com/abc D
www.contoso.com/abzzz B
www.contoso.com/abc/ E
www.contoso.com/abc/d F
www.contoso.com/abc/def G
www.contoso.com/abc/defzzz| F
www.contoso.com/abc/def/ghi| F
www.contoso.com/path B
www.contoso.com/path/ H
www.contoso.com/path/zzz B

警告

如果沒有 catch-all 路由路徑 (/*),則完全相符的前端主機沒有路由規則,則不會比對任何路由規則。

設定範例:

路由 Host 路徑
A profile.contoso.com /api/*

比對表格:

傳入要求 相符的路由
profile.domain.com/other 無。 錯誤 404:不正確的要求

路由決策

一旦 Azure Front Door 符合路由規則,它會決定如何處理要求。 如果快取的回應可供使用,則會傳回用戶端。

如果已針對相符的路由規則設定規則集,則會依序處理。 規則集可以 藉由將流量導向至特定原始群組來覆寫路由 。 如果未定義規則集,要求會轉送至原始群組,而不會變更。

如果 Azure Front Door (傳統) 沒有快取的回應,它會檢查 URL 重寫設定 。 如果未定義任何自定義轉送路徑,要求會轉送至已設定後端集區中的適當後端。 如果已定義自定義轉送路徑,則會據以更新要求路徑,然後轉送至後端。

下一步