Azure 应用程序网关在单个应用服务环境后端池中具有多个应用程序

标签 azure azure-app-service-envrmnt azure-application-gateway app-service-environment

我收到了一个项目,其中 Azure 应用程序网关 (AGW) 使用包含多个应用程序的内部负载均衡器 (ILB) 应用服务环境 (ASE) 作为后端池。

AGW 使用多个多站点监听器进行设置,其中每个多站点监听器的主机与 ILB ASE 中运行的应用服务实例中的自定义域相匹配。像这样:

enter image description here

我需要向 ASE 添加一个新应用程序,并向 AGW 添加相应的配置。

问题是AGW最多可以有20个监听器,我手上收到的项目已经达到了这个要求。因此,我无法使用此设置向 AGW 添加更多应用程序。

为了以最小的更改解决监听器限制,我想使用基于多站点路径的路由,并将 ILB ASE 作为后端池。 我想要如下所示的东西:

enter image description here

我花了一些时间查看文档以及其他 StackOverflow 问题。我还浏览了多站点应用程序服务文档 https://learn.microsoft.com/en-us/azure/application-gateway/create-web-app ,包括使用 -PickHostNameFromBackend 开关。 我已经做了一些实验,到目前为止没有成功。

我相信目前 AGW 不支持我想做的事情。我想我明白为什么。从 AGW 传递到 ILB ASE (api.example.com) 的主机名不作为 ASE 中的任何应用服务实例中的自定义域出现,因此请求将不会得到满足。如果我错了请纠正我。

我想要的设置(图 2)是否可行?

如果不可能,像我今天这样只有一个 AGW 的替代解决方案是什么?

最佳答案

首先,您可以开具支持票证,将监听器/后端池数量从 20 个增加到 40 个。这应该会立即为您提供一些扩展空间。

第二种情况应该也是可能的。您应该使用 api-aaa.example.com 和 api-bbb.example.com 作为后端池成员。并使用 HTTPSettings 上的开关 PickHostNameFromBackendAddress,并创建一个设置了 PickHostNameFromBackendHttpSettings 标志的自定义探针,并将探针关联到 HTTPSetting。您将在每个基于路径的规则中使用此设置,同时将路径关联到后端池。请确保 VNet 中的内部 DNS 可以将 api-aaa.example.com 和 api-bbb.example.com 解析为 ILB IP 222.222.222.222。

关于Azure 应用程序网关在单个应用服务环境后端池中具有多个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51544913/

相关文章:

azure - 将网站发布到 Azure 应用服务(部署槽)+ 自动交换时是否可以实现零停机

azure - 有免费的Sandbox for Azure App服务吗?

Azure 应用程序网关排除 - 检查嵌套请求正文属性

azure - 具有流量管理器和应用程序网关的多站点 Web 应用程序

Azure 应用程序网关外部 URL 重写

azure - Azure 负载均衡器如何扩展应用服务计划?

C# Kusto.Data 忽略 ssl 证书错误

azure - Azure 辅助角色上的并发连接

azure - 部署失败,错误为 : Package deployment using ZIP Deploy failed. 请参阅日志了解更多详细信息

database - Azure Powershell SQL 数据库导出到存储容器获取 "An Error Occurred while Sending the Request"