azure - 如何使用 Azure 应用程序网关路由到另一条路径?
问题描述
我想使用 Azure 应用程序网关将 Azure Web App 服务中的 URL 路径重定向到另一个 URL 路径。如何避免重定向以包含原始路径?
我在 Azure 中有一个 ASP.NET framework 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 路径。
解决方案
对于include path
配置,我认为您可以尝试使用带有参数的Azure CLI或Azure PowerShell为侦听器设置重定向。-IncludePath
从文档中的重定向到外部站点,它应该有禁用包含路径的选项。
通过此更改,客户需要创建一个新的重定向配置对象,该对象指定需要重定向到的目标侦听器或外部站点。配置元素还支持将 URI 路径和查询字符串附加到重定向 URL 的选项。您还可以选择重定向的类型。创建后,此重定向配置将通过新规则附加到源侦听器。使用基本规则时,重定向配置与源侦听器相关联,并且是全局重定向。当使用基于路径的规则时,重定向配置在 URL 路径映射中定义。所以它只适用于站点的特定路径区域。
推荐阅读
- google-apps-script - Google Apps 脚本:如何在工作表中获取条件格式规则,包括每个规则的值
- c# - System.Speech.Synthesis:类型或命名空间 Speech 不存在
- windows - 是否有可能以及如何升级现有的 GCE VM 操作系统?
- image - 解码 TFRecord 失败。预期的图像(JPEG、PNG 或 GIF),格式未知,以 '\257\
- sas - sas:如何创建一个包含 2 个数据集中不同变量列表的变量
- angular - 在 Ionic 4/Angular 中保留路由历史记录的同时一次导航回多个页面的好方法是什么?
- excel - 如何从 EXCEL VBA 向 SAP BAPI 传递参数
- google-cloud-platform - 是否可以在没有域命名的情况下为 GCS 存储桶设置索引文件?
- java - spring 容器是否为属于同一泛型类但使用不同类型的对象创建新 bean?
- mysql - 如何在 Sequelize 中设置查询超时?