gpt4 book ai didi

azure - Azure Front Door(预览版)标准版/高级版中的 URL 重写

转载 作者:行者123 更新时间:2023-12-02 22:54:08 27 4
gpt4 key购买 nike

我们有 2 个应用服务:foo.azurewebsites.netbar.azurewebsites.net并为两个站点配置了源组。我们希望前门进行基于路径的路由:即:

myfd.z01.azurefd.net/foo -> foo.azurewebsites.net
myfd.z01.azurefd.net/bar -> bar.azurewebsites.net

我们可以使用 Patterns to match 配置它来工作路线为/foo/*/bar/*分别。这按预期工作。

接下来,我们要重写 URL,这样我们就不会得到最初的 /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 规则如下:

<表类=“s-表”><标题>设置值 <正文>行动URL重写源模式 /foo/ 目的地 / 保留不匹配的路径 Yes

但是,这似乎不起作用。在 AzureDiagnostics日志中我们可以看到规则正在触发,但 URL 没有被重写 - 它仍然包含 /foo/ 。我们还缺少什么吗?

最佳答案

问题分析

我遇到了同样的问题,经过一些实验,我得出了 Azure 前门(预览版)标准/高级版当前状态的以下行为:

如果在端点管理器中将路由配置为匹配子路径,例如/foo/*,要路由到特定的 Origin,启用的 UrlRewrite 规则仅适用于 /foo 之后的路径。例如

Route:
Pattern to match: /foo/*
OriginGroup: Foo
Rule: UrlRewrite
Source pattern "/"
Destination "/bar/"
Preserve unmatched path: true

将导致重写,例如/foo/baz/foo/bar/baz ,因此不适用于给定的问题。但是,有两种选择可以实现所需的结果。

解决方案

方式 1:在路由配置中使用源路径而不是规则

源路径会覆盖要匹配的模式,因此本身已经是一个 UrlRewrite。然而,通过 Azure 门户 UI 不允许仅将 / 设置为路径,但可以通过 az afd route update 设置。 CLI 是可能的并且有效:

Update 2022 - you can now also set '/' as origin path via Azure Portal

screenshot of azure portal route config

此处不需要额外的规则。

方式 2:不要使用不同的路由,而是使用具有源组覆盖的规则

仅配置一条路由来匹配所有请求 /* 并为默认源提供服务。对此路由应用一个规则集,其中包含每个源的源组覆盖和* Url 重写* 规则: enter image description here

关于azure - Azure Front Door(预览版)标准版/高级版中的 URL 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68564910/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com