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

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

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

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

将同一域名关联到应用程序网关和后端池中的应用服务后,请求流便不需要替代主机名了。 后端 Web 应用程序会看到客户端使用的原始主机。

Scenario overview for Application Gateway to App Service using the same custom domain for both

在本文中,你将学习如何:

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

先决条件

Configuring DNS(配置 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 密钥保管库拉取自定义域的证书。

将应用服务添加为后端池

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

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

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

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

    App service backend

    注意

    下拉列表中只填充了与应用程序网关位于同一订阅中的应用服务。 若要使用与应用程序网关所在订阅不同的订阅中的应用服务,请在“目标”下拉列表中选择“应用服务”,选择“IP 地址或主机名”选项,然后输入应用服务的主机名 (example.chinacloudsites.cn)。

  5. 选择“保存”。

编辑应用服务的 HTTP 设置

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

我们将使用 HTTPS 连接到后端。

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

Configure H T T P Settings to use custom domain towards App Service backend using No Override

配置 HTTP 侦听器

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

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

Add a listener for H T T P S traffic

配置请求路由规则

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

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

Add a new Routing rule from the listener to the App Service Backend Pool using the configured H T T P Settings

测试

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

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

Check backend health in Azure portal

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

限制访问

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

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