要求如何與路由設定進行比對
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 會使用下列步驟來比對前端主機:
- 檢查前端主機上是否有完全相符的路由。
- 如果找不到完全相符專案,則會拒絕要求,並出現 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 判斷特定的前端主機並篩選可能的路由規則之後,它會根據要求路徑選取路由規則。 使用下列邏輯:
- 檢查與要求路徑完全相符的路由規則。
- 如果找不到完全相符專案,請尋找具有相符通配符路徑的路由規則。
- 如果找不到相符的路徑,要求會遭到拒絕,並出現 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 邊緣的傳入要求:
警告
如果沒有 catch-all 路由路徑 (/*),則完全相符的前端主機沒有路由規則,則不會比對任何路由規則。
設定範例:
路由 | Host | 路徑 |
---|---|---|
A | profile.contoso.com | /api/* |
比對表格:
傳入要求 | 相符的路由 |
---|---|
profile.domain.com/other | 無。 錯誤 404:不正確的要求 |
路由決策
一旦 Azure Front Door 符合路由規則,它會決定如何處理要求。 如果快取的回應可供使用,則會傳回用戶端。
如果已針對相符的路由規則設定規則集,則會依序處理。 規則集可以 藉由將流量導向至特定原始群組來覆寫路由 。 如果未定義規則集,要求會轉送至原始群組,而不會變更。
如果 Azure Front Door (傳統) 沒有快取的回應,它會檢查 URL 重寫設定 。 如果未定義任何自定義轉送路徑,要求會轉送至已設定後端集區中的適當後端。 如果已定義自定義轉送路徑,則會據以更新要求路徑,然後轉送至後端。
下一步
- 建立 Azure Front Door。
- 了解 Azure Front Door 路由結構。
- 建立 Azure Front Door (傳統版)。
- 了解 Azure Front Door 路由結構。