![](/img/trans.png)
[英]Is there a way to connect an Azure firewall to a Front Door Premium Policy with Bicep?
[英]URL Rewrite in Azure Front Door (Preview) Standard/Premium
我們有 2 個應用程序服務: foo.azurewebsites.net
和bar.azurewebsites.net
並為這兩個站點配置了源組。 我們希望前門進行基於路徑的路由:即:
myfd.z01.azurefd.net/foo -> foo.azurewebsites.net
myfd.z01.azurefd.net/bar -> bar.azurewebsites.net
我們可以將其配置為使用Patterns to match
路由,分別為/foo/*
和/bar/*
。 這按預期工作。
接下來,我們要重寫 URL,這樣我們就不會得到發送到 web 應用程序的初始/foo
或/bar
路徑。 換句話說,當前設置產生以下內容:
myfd.z01.azurefd.net/foo/abc -> foo.azurewebsites.net/foo/abc
myfd.z01.azurefd.net/bar/def -> bar.azurewebsites.net/bar/def
我們想要的是:
myfd.z01.azurefd.net/foo/abc -> foo.azurewebsites.net/abc
myfd.z01.azurefd.net/bar/def -> bar.azurewebsites.net/def
所以我們設置了一個重寫 URL 規則如下:
環境 | 價值 |
---|---|
行動 | URL 重寫 |
來源模式 | /foo/ |
目的地 | / |
保留不匹配的路徑 | Yes |
但是,這似乎不起作用。 在AzureDiagnostics
日志中,我們可以看到規則正在觸發,但 URL 沒有被重寫 - 它仍然包含/foo/
。 我們缺少什么嗎?
我遇到了同樣的問題,經過一些實驗后,我得出了 Azure Front Door(預覽版)標准版/高級版的當前 state 的以下行為:
如果在端點管理器中路由被配置為匹配子路徑,例如/foo/*
,以路由到特定源,則啟用的 UrlRewrite 規則僅適用於/foo
之后的路徑。 例如
Route:
Pattern to match: /foo/*
OriginGroup: Foo
Rule: UrlRewrite
Source pattern "/"
Destination "/bar/"
Preserve unmatched path: true
將導致從例如/foo/baz
重寫為/foo/bar/baz
,因此不適用於給定的問題。 但是,有兩種選擇可以實現所需的結果。
Origin 路徑會覆蓋要匹配的 Pattern,因此它本身已經是一個 UrlRewrite。 盡管如此,通過 Azure 門戶 UI 不允許僅設置/
作為路徑,但通過az afd route update
CLI 可以並且有效:
2022 年更新- 您現在還可以通過 Azure 門戶將“/”設置為原始路徑
這里不需要額外的規則。
只有一個路由配置匹配所有請求/*
並服務於默認來源。 此路由應用了一個規則集,其中包含每個來源的來源組覆蓋和 * Url 重寫* 規則:
您不需要為此使用重寫,只需使用帶有路由規則的簡單轉發來匹配您的模式並轉發到相應的后端池
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.