你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure 应用程序网关保护 Azure VMware 解决方案上的 Web 应用

Azure 应用程序网关是第 7 层 Web 流量负载均衡器,可用于管理 Web 应用程序的流量,同时在 Azure VMware 解决方案 v1.0 和 v2.0 中提供。 这两个版本都是通过在 Azure VMware 解决方案上运行的 Web 应用进行测试的。

功能包括:

  • 基于 Cookie 的会话关联
  • 基于 URL 的路由
  • Web 应用程序防火墙 (WAF)

有关功能的完整列表,请参阅 Azure 应用程序网关功能

本文介绍如何在 Web 服务器场前面使用应用程序网关来保护在 Azure VMware 解决方案上运行的 Web 应用。

拓扑

此图显示了如何使用应用程序网关来保护 Azure IaaS 虚拟机 (VM)、Azure 虚拟机规模集或本地服务器。 应用程序网关将 Azure VMware 解决方案 VM 视为本地服务器。

Diagram showing how Application Gateway protects Azure IaaS virtual machines (VMs), Azure Virtual Machine Scale Sets, or on-premises servers.

重要

Azure 应用程序网关是公开在 Azure VMware 解决方案 VM 上运行的 Web 应用的首选方法。

此图显示了用于通过 Azure VMware 解决方案 Web 应用程序验证应用程序网关的测试方案。

Diagram showing the testing scenario used to validate the Application Gateway with Azure VMware Solution web applications.

应用程序网关实例部署在具有 Azure 公共 IP 地址的专用子网的中心上。 建议为虚拟网络激活 Azure DDoS 防护。 Web 服务器托管在 NSX T0 和 T1 网关后面的 Azure VMware 解决方案私有云上。 此外,Azure VMware 解决方案使用 ExpressRoute Global Reach 来实现与中心和本地系统的通信。

先决条件

  • 具有活动订阅的 Azure 帐户。
  • Azure VMware 解决方案私有云已部署且正在运行。

部署和配置

  1. 在 Azure 门户中,搜索“应用程序网关”,然后选择“创建应用程序网关”

  2. 提供如下图所示的基本详细信息;然后选择“下一步: 前端>”

    Screenshot showing Create application gateway page in Azure portal.

  3. 选择前端 IP 地址类型。 对于公共,选择现有的公共 IP 地址,或新建一个。 在完成时选择“下一步:后端>

    注意

    专用前端仅支持标准和 Web 应用程序防火墙 (WAF) SKU。

  4. 添加在 Azure VMware 解决方案基础结构上运行的 VM 的后端池。 提供在 Azure VMware 解决方案私有云上运行的 Web 服务器的详细信息并选择“添加”。 然后选择“下一步: 配置 >”。

  5. 在“配置”选项卡上,选择“添加路由规则”

  6. 在“侦听器”选项卡上,提供侦听器的详细信息。 如果选择了 HTTPS,则必须从 PFX 文件或现有 Azure Key Vault 证书提供证书。

  7. 选择“后端目标”选项卡,然后选择以前创建的后端池。 对于“HTTP 设置”字段,选择“新增”

  8. 配置 HTTP 设置的参数。 选择 添加

  9. 如果要配置基于路径的规则,请选择“添加多个目标以创建基于路径的规则”

  10. 添加基于路径的规则,然后选择“添加”。 重复此步骤以添加更多基于路径的规则。

  11. 添加完基于路径的规则后,请再次选择“添加”,然后选择“下一步: 标记>”

  12. 添加标记,然后选择“下一步: 审阅并创建>”

  13. 验证在应用程序网关上运行。 如果成功,请选择“创建”进行部署

配置示例

现在,使用 Azure VMware 解决方案 VM 将应用程序网关配置为以下用例的后端池:

托管多个站点

此过程介绍如何在现有应用程序网关上使用 Azure VMware 解决方案私有云上运行的 VM 定义后端地址池。

注意

此过程假定你拥有多个域,因此我们使用示例 www.contoso.comwww.contoso2.com

  1. 在私有云中,创建两个不同的 VM 池。 一个代表 Contoso,另一个代表 contoso2。

    Screenshot showing summary of a web server's details in VMware vSphere Client.

    我们使用安装了 Internet Information Services (IIS) 角色的 Windows Server 2016。 安装 VM 后,运行以下 PowerShell 命令,在每个 VM 上配置 IIS。

    Install-WindowsFeature -Name Web-Server
    Add-Content -Path C:\inetpub\wwwroot\Default.htm -Value $($env:computername)
    
  2. 在现有应用程序网关实例中,从左侧菜单中选择“后端池”,选择“添加”,然后输入新池的详细信息。 在右窗格中选择“添加”

    Screenshot of Backend pools page for adding backend pools.

  3. 在“侦听器”部分中,为每个网站创建一个新的侦听器。 输入每个侦听器的详细信息,然后选择“添加”

  4. 在左侧选择“HTTP 设置”,并在左窗格中选择“添加”。 填写详细信息以创建新的 HTTP 设置,然后选择“保存”

    Screenshot of HTTP settings page to create a new HTTP setting.

  5. 在左侧菜单的“规则”部分中创建规则。 将每个规则与相应的侦听器相关联。 选择 添加

  6. 配置相应的后端池和 HTTP 设置。 选择 添加

  7. 测试连接。 打开首选浏览器并导航到 Azure VMware 解决方案环境中托管的不同网站。

    Screenshot of browser page showing successful test the connection.

按 URL 路由

以下步骤使用 Azure VMware 解决方案私有云上运行的 VM 定义后端地址池。 私有云在现有应用程序网关上。 然后创建路由规则,以确保 Web 流量到达池中的相应服务器。

  1. 在私有云中,创建虚拟机池以表示 Web 场。

    Screenshot of page in VMware vSphere Client showing summary of another VM.

    使用安装了 IIS 角色的 Windows Server 2016 来说明此教程。 安装 VM 后,运行以下 PowerShell 命令,为每个 VM 教程配置 IIS。

    第一个虚拟机 contoso-web-01 会托管主网站。

    Install-WindowsFeature -Name Web-Server
    Add-Content -Path C:\inetpub\wwwroot\Default.htm -Value $($env:computername)
    

    第二个虚拟机 contoso-web-02 会托管图像站点。

    Install-WindowsFeature -Name Web-Server
    New-Item -Path "C:\inetpub\wwwroot\" -Name "images" -ItemType "directory"
    Add-Content -Path C:\inetpub\wwwroot\images\test.htm -Value $($env:computername)
    

    第三个虚拟机 contoso-web-03 会托管视频站点。

    Install-WindowsFeature -Name Web-Server
    New-Item -Path "C:\inetpub\wwwroot\" -Name "video" -ItemType "directory"
    Add-Content -Path C:\inetpub\wwwroot\video\test.htm -Value $($env:computername)
    
  2. 在现有应用程序网关实例中添加三个新的后端池。

    1. 从左侧菜单中选择“后端池”。
    2. 选择“添加”,然后输入第一个池 contoso-web 的详细信息。
    3. 将一个 VM 添加为目标。
    4. 选择 添加
    5. 为 contoso-images 和 contoso-video 重复此过程,并将一个唯一 VM 添加为目标。

    Screenshot of Backend pools page showing the addition of three new backend pools.

  3. 在“侦听器”部分中,使用端口 8080 创建一个类型为“基本”的新侦听器。

  4. 在左侧导航中选择“HTTP 设置”,并在左窗格中选择“添加”。 填写详细信息以创建新的 HTTP 设置,然后选择“保存”

    Screenshot of Add HTTP setting page showing HTTP settings configuration.

  5. 在左侧菜单的“规则”部分中创建规则,并将每个规则与以前创建的侦听器关联。 然后配置主后端池和 HTTP 设置,随后选择“添加”

    Screenshot of Add a routing rule page to configure routing rules to a backend target.

  6. 测试配置。 访问 Azure 门户上的应用程序网关,然后复制“概述”部分中的公共 IP 地址。

    1. 打开新的浏览器窗口,然后输入 URL http://<app-gw-ip-address>:8080

      Screenshot of browser page showing successful test of the configuration.

    2. 将 URL 更改为 http://<app-gw-ip-address>:8080/images/test.htm

      Screenshot of another successful test with the new URL.

    3. 将 URL 再次更改为 http://<app-gw-ip-address>:8080/video/test.htm

      Screenshot of successful test with the final URL.

后续步骤

现在,你已介绍了如何使用应用程序网关来保护在 Azure VMware 解决方案上运行的 Web 应用,接下来详细了解: