![](/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.