【问题标题】:Overcoming the 40 Frontend Port limitation on Azure Application Gateway克服 Azure 应用程序网关上的 40 个前端端口限制
【发布时间】:2025-12-10 16:55:01
【问题描述】:
  • 我们在 ourapp.com 上展示了一个面向客户的应用程序
  • Ourapp.com 指向我们的 Azure Web 应用程序防火墙的公共 IP
  • 我们的每个客户都有两个专用端口,用于访问应用程序。
  • 所有这些端口都在 49152 到 65535 的范围内
  • 由于合同义务,目前无法更改客户连接的端口,但我们将通过更可扩展的解决方案与新客户接洽,并在旧客户续签合同时迁移他们。
  • 目前,ourapp.com 指向带有 Web 应用程序防火墙的 Azure 应用程序网关。
  • 应用程序网关侦听客户连接的端口并将连接传递到我们后端应用程序服务器的相应池。
  • 在 App Gateway 中,一些路由规则具有重写规则,可将额外的标头附加到请求中。
  • 带有 Web 应用程序防火墙的应用程序网关限制为 40 个前端侦听端口,这将每个应用程序网关限制为 20 个客户(暴露 2 个端口)
  • 我们的客户远远超过 20 家

我的问题是这样的。 我是否可以在保持单一公共 URL 的同时将我们的客户群拆分到多个应用程序网关上?

关于应用网关限制的文档:https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#application-gateway-limits

【问题讨论】:

    标签: azure url-routing azure-application-gateway


    【解决方案1】:

    一个公共 URL/域只能指向一个公共 IP 地址,在您的情况下,它转换为一个应用程序网关。如果您在一个 WAF AppGw 上遇到限制,您显然需要添加更多。因此,您需要在 AppGw 之上引入其他东西,以接受流量并将其在内部分配给多个 AppGws。

    我有类似的设置,但在我的情况下,我在 AppGw 上达到了 100 个侦听器的限制(我们有 100 个域仅在 443 上侦听,但如果您有一个域具有 100 个不同的 URL 在不同的端口上侦听,则情况相同)并通过增加 AppGws 的数量将其拆分为 5 个 AppGws。

    由于您正在考虑扩展,因此您需要查看的是 AppGws 之上的某种目标 NAT,它可以处理分发。考虑使用 Azure 防火墙,为每个端口创建一个 NAT 规则。我相信一个警告是,所有 AppGws 都必须监听私有 IP(您可以同时配置私有 IP 和公共 IP)。

    两条规则如下所示:

    规则 1
    来源:*
    目标地址:防火墙公共 IP
    目的港:49152
    翻译地址:AppGw1私网IP
    翻译端口:49152

    规则2
    来源:*
    目标地址:防火墙公共 IP
    目的港:49154
    翻译地址:AppGw2私有IP
    翻译端口:49154

    这不是一个完美的解决方案,因为即使是 Azure 防火墙也有一些 limitations(最多 298 条 DNAT 规则,可以为 149 位客户提供服务)。

    【讨论】:

      最近更新 更多