Azure 应用程序网关背后的 Web 应用程序 - 传出请求的 IP 是什么

Web Apps behind Azure Application Gateway - what is the IP of outgoing requests

我在 Azure 上有多个 Web 应用程序,我想将它们放在应用程序网关后面,以便使用具有路径路由的单个域名。

但是,我的 Web 应用程序需要连接到 Azure 外部的数据库。所以我想知道从这些网络应用程序到数据库的请求的 IP 是多少?我希望它是网关 public IP,所以我只需要在我的数据库提供商处授权一个 IP,但我没有找到任何文档来确认它(或没有)。

So I wonder what will the IP of the requests from these web apps to the db would be?

如果您希望您的 Web 应用程序连接到 Azure 外部的数据库,您可能需要 App service Environment。因为 Web Apps 需要 VNet 来连接其他资源。此外,由于日期库在 Azure 之外,您需要创建 VPN 网关来连接它。此连接位于 Web 应用程序和数据库之间,而不是应用程序网关和数据库之间。

所以,那些Web App请求的IP不是应用网关的IP,它取决于应用服务环境中的VNet。

这张图片解释了这个环境是如何工作的:

I hope it will be the gateway public IP so I only have to authorize one IP at my db provider but I don't find any docs to confirm it (or not).

另外,如果您还想使用一个IP来连接其他资源,您也可以添加Internal Loadbalancer来实现。

您可以查看有关 Integrating your ILB ASE with an Application Gateway 的更多详细信息,以帮助您部署资源。

如果这个答案有帮助,请告诉我。

我建议使用 Azure Web App 的混合连接。这在您的 Azure Web 应用程序和您的 SQL 数据库之间以安全的方式提供了一个 TCP 隧道。中间有一个服务总线,您必须在您的网络中安装中继代理,以向该服务总线进行传出通信。

Hybrid connection diagram

详情请见: https://docs.microsoft.com/en-us/azure/app-service/app-service-hybrid-connections

无法利用应用网关的 public IP 地址,也没有必要管理 Azure Web 应用程序与 Azure 外部数据库之间的连接。 Web 应用程序有自己的 IP 地址。

另一方面,我的博客 post 可能有助于了解应用程序网关和 Azure Web 应用程序之间的体系结构和配置。