【问题标题】:How to route to another path with Azure Application Gateway?如何使用 Azure 应用程序网关路由到另一条路径?
【发布时间】:2020-02-19 12:44:57
【问题描述】:

我想使用 Azure 应用程序网关将我的 Azure Web 应用服务中的 URL 路径重定向到另一个 URL 路径。如何避免重定向包含原始路径?

我在 Azure 中有一个 ASP.NET 框架 4.7 Web App 服务,有两个 API:

https://myapp.azurewebsites.net/api/values/{int}        -> respons 200
https://myapp.azurewebsites.net/api/forbidden           -> respons 403

然后我有一个应用程序网关

http://myapp.northeurope.cloudapp.azure.com

基于路径的路由

http://myapp.northeurope.cloudapp.azure.com -> https://myapp.azurewebsites.net (works ok)

并且永久重定向到“外部站点”

/api/values/* -> http://myapp.northeurope.cloudapp.azure.com/api/forbidden

现在,当我转到路径 /api/values/1 时,它会将我错误地重定向到 /api/forbidden/api/values/1

http://myapp.northeurope.cloudapp.azure.com/api/values/1 -> http://myapp.northeurope.cloudapp.azure.com/api/forbidden/api/values/1 !!!

表示重定向包括原始路径! “包含路径”在配置中未选中并显示为灰色。

我只想限制从公共 Internet 访问某些 API 路径。

【问题讨论】:

  • 可能因为优先级而发生?
  • 嗯……也许吧。问题是如何避免它。我可以解决这个问题,只需部署另一个只响应“403 禁止”的 Web 服务,然后将其作为池添加到网关。但是对于这么简单的要求来说,这看起来有点过头了。
  • 改变规则的顺序?
  • 只有一个基于路径的规则,从网关重定向到池,并为 /api/values/* 添加了 URL 路径例外。由于只有一个侦听器,因此无法添加更多规则。并且同一端口(80)上只能有一个侦听器。

标签: azure azure-web-app-service


【解决方案1】:

对于include path 配置,我认为您可以尝试使用Azure CLIAzure PowerShell 使用-IncludePath 参数为侦听器设置重定向。

document 中的重定向到外部站点,它应该有禁用包含路径的选项。

进行此更改后,客户需要创建新的重定向 配置对象,指定目标监听器或外部 需要重定向的站点。 配置元素也 支持选项以启用将 URI 路径和查询字符串附加到 重定向的 URL。您还可以选择重定向的类型。 创建后,此重定向配置将附加到源 通过新规则监听。使用基本规则时,重定向 配置与源侦听器相关联并且是全局的 重定向。使用基于路径的规则时,重定向配置 在 URL 路径映射上定义。所以它只适用于特定的 站点的路径区域。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 2022-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    相关资源
    最近更新 更多