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

将 ILB 应用服务环境与 Azure 应用程序网关集成

应用服务环境是客户的 Azure 虚拟网络子网中的 Azure 应用服务部署。 它可以与外部或内部终结点一起部署,以进行应用访问。 如果一个部署是具有内部终结点的应用服务环境,则该部署称为内部负载均衡器 (ILB) 应用服务环境。

Web 应用程序防火墙会检查入站 Web 流量,并阻止 SQL 注入、跨站点脚本、恶意软件上传和应用程序 DDoS 及其他攻击,从而帮助你保护 Web 应用程序的安全。 你可以从 Azure 市场获取 WAF 设备,也可以使用 Azure 应用程序网关

Azure 应用程序网关是一个虚拟设备,提供第 7 层负载均衡、TLS 卸载和 Web 应用程序防火墙 (WAF) 保护。 可侦听公共 IP 地址和将流量路由到应用程序终结点。 以下信息描述了如何将 WAF 配置的应用程序网关与 ILB 应用服务环境中的应用进行集成。

将应用程序网关与 ILB 应用服务环境进行集成是在应用级别上进行的。 将应用程序网关与 ILB 应用服务环境进行集成时,是为 ILB 应用服务环境中特定应用进行的此操作。

高级集成图的屏幕截图

本演练中的操作:

  • 创建 Azure 应用程序网关。
  • 配置应用程序网关,以指向 ILB 应用服务环境中的某个应用。
  • 编辑指向应用程序网关的公共 DNS 主机名。

先决条件

若要将应用程序网关与 ILB 应用服务环境集成,需要:

  • ILB 应用服务环境。
  • ILB 应用服务环境的一个专用 DNS 区域。
  • ILB 应用服务环境中运行的应用。
  • 应用程序网关的公共 DNS 名称。
  • 如果需要对应用程序网关使用 TLS 加密,则需要具有一个用于绑定到应用程序网关的有效公共证书。

ILB 应用服务环境

有关如何创建 ILB 应用服务环境的详细信息,请参阅在 Azure 门户中创建应用服务环境使用 Azure 资源管理器模板创建应用服务环境

  • 创建 ILB 应用服务环境后,默认域为 <YourAseName>.appserviceenvironment.net

    ILB 应用服务环境概览的屏幕截图。

  • 已预配内部负载均衡器用于入站访问。 你可以在应用服务环境的“设置”下的“IP 地址”中检查“入站地址”选项。 稍后可以创建映射到此 IP 地址的专用 DNS 区域。

    从 ILB 应用服务环境的“IP 地址”设置获取入站地址的屏幕截图。

专用 DNS 区域

需要使用专用 DNS 区域进行内部名称解析。 请根据下表所示的记录集,使用相应应用服务环境名称创建专用 DNS 区域(有关说明,请参阅快速入门 - 使用 Azure 门户创建 Azure 专用 DNS 区域)。

名称 类型
* A 应用服务环境入站地址
@ A 应用服务环境入站地址
@ SOA 应用服务环境 DNS 名称
*.scm A 应用服务环境入站地址

ILB 应用服务环境中的应用服务

你需要在 ILB 应用服务环境中创建应用服务计划和应用。 在门户中创建该应用时,请在“区域”选项中选择你的 ILB 应用服务环境

应用程序网关的公共 DNS 名称

若要从 Internet 连接到应用程序网关,需要一个可路由的域名。 在本例中,我使用了可路由的域名 asabuludemo.com,并打算使用域名 app.asabuludemo.com 连接到应用服务。 创建应用程序网关后,映射到此应用域名的 IP 地址需要设置为应用程序网关公共 IP 地址。 如果使用映射到应用程序网关的公共域,则无需在应用服务中配置自定义域。 可以购买带有应用服务域的自定义域名。

有效的公共证书

为了增强安全性,请绑定 TLS 证书以进行会话加密。 若要将 TLS 证书绑定到应用程序网关,则需要使用包含以下信息的有效公共证书。 如需使用应用服务证书时,你可以购买 TLS 证书并将其导出为 .pfx 格式。

名称 说明
公用名 <yourappname>.<yourdomainname>,例如:app.asabuludemo.com
*.<yourdomainname>,例如:*.asabuludemo.com
应用程序网关的标准证书或通配符证书
使用者可选名称 <yourappname>.scm.<yourdomainname>,例如:app.scm.asabuludemo.com
*.scm.<yourdomainname>,例如:*.scm.asabuludemo.com
允许连接到应用服务 kudu 服务的 SAN。 如果你不想要将应用服务 kudu 服务发布到 Internet,则这是可选的设置。

证书文件应具有私钥,并采用 .pfx 格式保存。 证书稍后将导入应用程序网关。

创建应用程序网关

若要了解如何创建基本的应用程序网关,请参阅教程:使用 Azure 门户创建具有 Web 应用程序防火墙的应用程序网关

在本教程中,我们将使用 Azure 门户创建基于 ILB 应用服务环境的应用程序网关。

在 Azure 门户中,选择“新建”>“网络”>“应用程序网关”以创建应用程序网关 。

  1. 基本设置

    在“层”下拉列表中,可以选择“标准 V2”或“WAF V2”以在应用程序网关上启用“WAF”功能。

  2. 前端设置

    选择“公共”、“专用”或“两者”作为前端 IP 地址类型 。 如果设置为“专用”或“两者”,则需要在应用程序网关子网范围内分配一个静态 IP 地址 。 在本例中,我们仅设置为公共终结点的公共 IP。

    • 公共 IP 地址 - 需要关联一个公共 IP 地址以进行应用程序网关公共访问。 请记下此 IP 地址,因为稍后需要在 DNS 服务中添加一条记录。

      从应用程序网关前端设置中获取公共 IP 的屏幕截图。

  3. 后端设置

    输入后端池名称,并在“目标类型”中选择“应用服务”或者“IP 地址或 FQDN” 。 在本例中,我们设置为“应用服务”,并从目标下拉列表中选择应用服务名称。

    在后端设置中添加后端池名称的屏幕截图。

  4. 配置设置

    在“配置”设置中,需要选择“添加路由规则”图标来添加路由规则。

    在配置设置中添加路由规则的屏幕截图。

    需要在路由规则中配置“侦听器”和“后端目标”。 可以添加 HTTP 侦听器以进行概念证明部署,或添加 HTTPS 侦听器以增强安全性。

    • 若要使用 HTTP 协议连接到应用程序网关,可以使用以下设置创建侦听器。

      参数 价值 说明
      规则名称 例如:http-routingrule 路由名称
      侦听器名称 例如:http-listener 侦听器名称
      前端 IP 公用 要进行 Internet 访问,请设置为“公共”
      协议 HTTP 请勿使用 TLS 加密
      端口 80 默认 HTTP 端口
      侦听器类型 多站点 允许在应用程序网关上侦听多站点
      主机类型 多个/通配符 如果侦听器类型设置为多站点,请将此参数设置为多站点或通配符网站名称。
      主机名 例如:app.asabuludemo.com 设置为应用服务的可路由域名

      应用程序网关路由规则的 HTTP 侦听器的屏幕截图。

    • 若要使用 TLS 加密连接到应用程序网关,可以基于以下设置创建侦听器:

      参数 价值 说明
      规则名称 例如:https-routingrule 路由名称
      侦听器名称 例如:https-listener 侦听器名称
      前端 IP 公用 要进行 Internet 访问,请设置为“公共”
      协议 HTTPS 使用 TLS 加密
      端口 443 默认 HTTPS 端口
      HTTPS 设置 上传证书 上传 .pfx 格式的包含 CN 和私钥的证书。
      侦听器类型 多站点 允许在应用程序网关上侦听多站点
      主机类型 多个/通配符 如果侦听器类型设置为多站点,请将此参数设置为多站点或通配符网站名称。
      主机名 例如:app.asabuludemo.com 设置为应用服务的可路由域名

      应用程序网关路由规则的 HTTPS 侦听器。

    • 必须在“后端目标”中配置“后端池”和“HTTP 设置” 。 在前面的步骤中已配置后端池。 选择“新增”链接以添加 HTTP 设置。

      添加新链接以添加 http 设置的屏幕截图。

    • 下表列出了各种 HTTP 设置:

      参数 价值 说明
      HTTP 设置名称 例如:https-setting HTTP 设置名称
      后端协议 HTTPS 使用 TLS 加密
      后端端口 443 默认 HTTPS 端口
      使用已知的 CA 证书 ILB 应用服务环境的默认域名为 .appserviceenvironment.net。 此域的证书由受信任的公共根证书颁发机构颁发。 在“受信任的根证书”设置中,可以设置为使用已知的 CA 受信任根证书。
      替代为新的主机名 在连接到 ILB 应用服务环境上的应用时,将覆盖主机名标头
      主机名替代 从后端目标中选取主机名 将后端池设置为应用服务时,可以从后端目标中选取主机
      创建自定义探测 使用默认的运行状况探测

      “添加 H T P 设置”对话框的屏幕截图。

配置与 ILB 应用服务环境的应用程序网关集成

若要从应用程序网关访问 ILB 应用服务环境,需要检查是否存在链接到专用 DNS 区域的虚拟网络。 如果没有任何虚拟网络链接到应用程序网关的虚拟网络,请按照以下步骤添加虚拟网络链接。

  • 若要使用专用 DNS 区域配置虚拟网络链接,请转到专用 DNS 区域配置平面。 选择“虚拟网络链接”>“添加”

将虚拟网络链接添加到专用 DNS 区域。

  • 输入链接名称,并选择应用程序网关所在的相应订阅和虚拟网络。

在专用 DNS 区域中输入虚拟网络链接设置的链接名称详细信息的屏幕截图。

  • 可以在应用程序网关平面的“后端运行状况”中确认后端运行状况。

在“后端运行状况”中确认后端运行状况的屏幕截图。

添加公共 DNS 记录

从 Internet 访问应用程序网关时,需要配置正确的 DNS 映射。

  • 可以在应用程序网关平面的“前端 IP 配置”中找到应用程序网关的公共 IP 地址。

可在“前端 IP 配置”中找到应用程序网关前端 IP 地址。

  • 以 Azure DNS 服务为例,你可以添加一个记录集,以将应用域名映射到应用程序网关的公共 IP 地址。

添加记录集以将应用域名映射到应用程序网关的公共 IP 地址的屏幕截图。

验证连接

  • 在从 Internet 访问的计算机上,可以验证应用域名是否可解析为应用程序网关公共 IP 地址。

通过命令提示符验证名称解析。

  • 在从 Internet 访问的计算机上,测试从浏览器进行 Web 访问。

打开浏览器并访问 Web 的屏幕截图。