使用应用程序网关配置应用服务

Azure 应用程序网关允许将应用服务应用或其他多租户服务作为后端池成员。 本文介绍如何通过应用程序网关配置应用服务应用。 应用程序网关的配置因如何访问应用服务而异:

  • 第一种方法是在应用程序网关和后端应用服务上均利用自定义域
  • 第二种方法是让应用程序网关使用默认域(后缀为“.chinacloudsites.cn”)访问应用服务。

对于生产级方案,建议使用此配置,此配置符合不更改请求流中的主机名的做法。 必须有一个可用的自定义域(和相关证书),以避免依赖于默认的“.chinacloudsites”域。

与后端池中的应用程序网关和应用服务相同的域名,请求流不需要重写主机名。 后端 Web 应用程序将原始主机视为客户端使用的原始主机。

使用同一自定义域的应用程序网关和应用服务的方案概述

本文介绍如何执行以下操作:

  • Configure DNS
  • 将应用服务作为后端池添加到应用程序网关
  • 为与应用服务的连接配置 HTTP 设置
  • 配置 HTTP 侦听器
  • 配置请求路由规则

Prerequisites

Configuring DNS

在此场景的上下文中,DNS 在两个地方是相关的:

  • 用户或客户端要对应用程序网关使用且会在浏览器中显示的 DNS 名称
  • 应用程序网关在内部用来访问后端应用服务的 DNS 名称

使用自定义域将用户或客户端路由到应用程序网关。 使用指向应用程序网关 DNS 的 CNAME 别名设置 DNS。 应用程序网关的 DNS 地址显示在关联的公共 IP 地址的“概述”页上。 或者,创建直接指向该 IP 地址的 A 记录。 (对于应用程序网关 V1,如果你停止并启动服务,VIP 可能会更改,这使得该选项并非所需。)

应配置应用服务,以便它使用自定义域名作为传入主机接受来自应用程序网关的流量。 有关如何将自定义域映射到应用服务的详细信息,请参阅教程:将现有的自定义 DNS 名称映射到 Azure 应用服务。若要验证域,应用服务只需添加 TXT 记录。 不需要对 CNAME 或 A 记录进行更改。 自定义域的 DNS 配置仍定向到应用程序网关。

若要接受通过 HTTPS 与应用服务建立的连接,请配置其 TLS 绑定。 有关详细信息,请参阅 在 Azure 应用服务配置应用服务中使用 TLS/SSL 绑定保护自定义 DNS 名称 ,以便从 Azure Key Vault 中拉取自定义域的证书。

将应用服务添加为后端池

  1. 在 Azure 门户中,选择你的应用程序网关。

  2. 在“后端池”下,选择后端池。

  3. 在“目标类型”下,选择“应用服务”。

  4. 在“目标”下,选择你的应用服务。

    应用服务后端

    备注

    下拉列表仅填充与应用程序网关位于同一订阅中的应用服务。 如果要使用与应用程序网关所在的订阅不同的订阅中的应用服务,则无需在“目标”下拉列表中选择应用服务,请选择 IP 地址或主机名选项,然后输入应用服务的主机名(example.chinacloudsites.cn)。 如果将专用终结点用于应用服务,则应改用专用终结点的 FQDN 或 IP 地址。

  5. Select Save.

编辑应用服务的 HTTP 设置

需要使用 HTTP 设置来指示应用程序网关使用自定义域名访问应用服务后端。 HTTP 设置默认使用 默认运行状况探测。 虽然默认情况下健康探测会使用接收流量时的主机名来转发请求,但由于未定义具体的主机名,健康探测可以使用 127.0.0.1 作为后端池的主机名。 因此,需要创建一个已配置有正确的自定义域名作为主机名的自定义运行状况探测

我们使用 HTTPS 连接到后端。

  1. 在“HTTP 设置”下,选择现有的 HTTP 设置或添加新的 HTTP 设置。
  2. 创建新的 HTTP 设置时,请为其指定一个名称
  3. 选择 HTTPS 作为所需的后端协议(使用端口 443)
  4. 如果证书由已知颁发机构签名,请选择“是”作为“用户已知的 CA 证书”。或者 添加后端服务器的身份验证/受信任的根证书
  5. 确保将“替代为新的主机名”设置为“否”
  6. 在下拉列表中选择“自定义探测”中的自定义 HTTPS 运行状况探测。

使用“不替代”将 HTTP 设置配置为对应用服务后端使用自定义域

配置 HTTP 侦听器

若要接受流量,需要配置侦听器。 有关侦听器的详细信息,请参阅 应用程序网关侦听器配置

  1. 打开“侦听器”部分,然后选择“添加侦听器”或选择要编辑的现有侦听器
  2. 对于新侦听器:为其命名
  3. 在“前端 IP”下,选择要侦听的 IP 地址
  4. 在“端口”下,选择 443
  5. 在“协议”下,选择“HTTPS”
  6. 在“选择证书”下,选择“从 Key Vault 中选择证书”。有关详细信息,请参阅 使用 Key Vault ,其中可以找到有关如何分配托管标识并向其提供 Key Vault 权限的详细信息。
    1. 为证书指定名称
    2. 选择托管标识
    3. 选择要从中获取证书的密钥保管库
    4. 选择证书
  7. 在“侦听器类型”下,选择“基本”
  8. 选择“添加”以添加侦听器

为 HTTPS 流量添加侦听器

配置请求路由规则

以前配置的后端池和 HTTP 设置,可以设置请求路由规则,以便从侦听器获取流量,并使用 HTTP 设置将其路由到后端池。 为此,请确保具有尚未绑定到现有路由规则的 HTTP 或 HTTPS 侦听器。

  1. 在“规则”下,选择添加新的“请求路由规则”
  2. 为规则提供名称
  3. 选择尚未绑定到现有路由规则的 HTTP 或 HTTPS 侦听器
  4. 在“后端目标”下,选择已配置了应用服务的后端池
  5. 配置应用程序网关要用于连接到应用服务后端的 HTTP 设置
  6. 选择“添加”以保存此配置

使用配置的 HTTP 设置将新的路由规则从侦听器添加到应用服务后端池

Testing

在执行此操作之前,请确保后端运行状况显示为“正常”:

打开“后端运行状况”部分,并确保“状态”列指示 HTTP 设置和后端池的组合显示为“正常”。

在 Azure 门户中检查后端运行状况

现在,使用与应用程序网关和后端应用服务相关联的自定义域浏览到 Web 应用程序。

Restrict access

这些示例中部署的 Web 应用使用可通过 Internet 直接访问的公共 IP 地址。 这有助于在了解新功能和尝试新事物时获取疑难解答。 但是,如果打算将功能部署到生产环境中,需要添加更多限制。 请考虑以下选项:

  • 配置基于服务终结点的访问限制规则。 这使你可以锁定对应用的入站访问,确保源地址来自应用程序网关。
  • 使用 Azure 应用服务静态 IP 限制。 例如,可以限制 Web 应用,使其仅接收来自应用程序网关的流量。 使用应用服务 IP 限制功能列出应用程序网关 VIP,作为具有访问权限的唯一地址。