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

任务关键型全局 HTTP 入口

任务关键型应用程序需要保持较高的运行时间,即使在网络组件不可用或降级时也是如此。 设计 Web 流量入口、路由和安全性时,可以考虑组合多个 Azure 服务,以实现更高级别的可用性,并避免出现单一故障点。

如果决定采用此方法,则需要为应用程序服务器实现单独的网络路径,并且需要单独配置和测试每个路径。 必须仔细考虑此方法的全部含义。

本文介绍通过 Azure Front Door 和 Azure 应用程序网关支持全局 HTTP 流量入口的方法。 如果解决方案需要,此方法可能满足你的需求:

  • 用于全局流量路由的 Azure Front Door。 这可能意味着在单独的 Azure 区域中有多个应用程序实例,或者为来自单个区域的所有全局用户提供服务。
  • Web 应用程序防火墙 (WAF) 可保护应用程序,而不考虑流量访问源服务器所遵循的路径。

网络边缘的缓存不是应用程序交付的关键部分。 如果缓存很重要,请参阅任务关键型全局内容交付,了解替代方法。

注意

此用例是整体设计策略的一部分,该策略涵盖 Azure Front Door 不可用时的替代方法。 有关上下文和注意事项的信息,请参阅任务关键型全局 Web 应用程序

方法

此基于 DNS 的负载均衡解决方案使用多个 Azure 流量管理器配置文件来监视 Azure Front Door。 如果出现可用性问题,流量管理器会通过应用程序网关重定向流量。

图显示 Azure 流量管理器,它具有到 Azure Front Door 的优先级路由,以及使用性能路由发送到两个区域中的应用程序网关实例的嵌套流量管理器配置文件。

此解决方案包含以下组件:

  • 使用优先级路由模式的流量管理器有两个终结点。 默认情况下,流量管理器通过 Azure Front Door 发送请求。 如果 Azure Front Door 不可用,则第二个流量管理器配置文件将确定将请求定向到何处。 下面介绍了第二个配置文件。

  • Azure Front Door 处理和路由大部分应用程序流量。 Azure Front Door 将流量路由到相应的源应用程序服务器,并提供应用程序的主路径。 Azure Front Door 的 WAF 可保护应用程序免受常见安全威胁。 如果 Azure Front Door 不可用,流量会自动通过辅助路径重定向。

  • 使用性能路由模式的流量管理器为每个应用程序网关实例提供一个终结点。 此流量管理器从客户端位置以最佳性能将请求发送到应用程序网关实例。

  • 应用程序网关会部署到每个区域,并将流量发送到该区域内的源服务器。 应用程序网关的 WAF 可保护流经辅助路径的任何流量。

  • 源应用程序服务器需要准备好随时接受来自 Azure Front Door 和 Azure 应用程序网关的流量。

注意事项

以下部分介绍了此类体系结构的一些重要注意事项。 在任务关键型解决方案中使用 Azure Front Door 时,还应查看任务关键型全局 Web 应用程序,了解其他重要注意事项和权衡。

流量管理器配置

此方法使用嵌套的流量管理器配置文件,为应用程序的备用流量路径同时实现基于优先级和基于性能的路由。 在源位于单个区域的简单方案中,可能只需要将单个流量管理器配置文件配置为使用基于优先级的路由。

区域分布

Azure Front Door 是全局服务,而应用程序网关是区域服务。

Azure Front Door 的接入点全局部署,TCP 和 TLS 连接在离客户端最近的接入点终止。 此行为可提高应用程序的性能。 相比之下,当客户端连接到应用程序网关时,无论流量来自何处,其 TCP 和 TLS 连接都会在接收请求的应用程序网关终止。

来自客户端的连接

作为一种全局多租户服务,Azure Front Door 提供固有保护抵御各种威胁。 Azure Front Door 仅接受有效的 HTTP 和 HTTPS 流量,不接受其他协议上的流量。 Microsoft 管理 Azure Front Door 用于其入站连接的公共 IP 地址。 由于这些特性,Azure Front Door 可帮助保护源免受各种攻击类型,并且可以将源配置为使用专用链接连接

相比之下,应用程序网关是一种面向 Internet 的服务,具有专用的公共 IP 地址。 必须保护网络和源服务器免受各种攻击类型。 有关详细信息,请参阅源安全性

Azure Front Door Premium 提供到源的专用链接连接,从而减少解决方案面向 Internet 的公共外围应用。

如果使用专用链接连接到源,请考虑将专用终结点部署到虚拟网络,并将应用程序网关配置为将专用终结点用作应用程序的后端。

扩展

当部署应用程序网关时,就为解决方案部署了专用的计算资源。 如果大量流量意外到达应用程序网关,你可能会发现性能或可靠性问题。

若要降低此风险,请考虑如何缩放应用程序网关实例。 使用自动缩放,或者确保已手动缩放它,以处理故障转移后可能收到的流量。

缓存

如果使用 Azure Front Door 的缓存功能,请务必注意,在流量切换到备用路径并使用应用程序网关后,不再从 Azure Front Door 缓存提供内容。

如果依赖于解决方案的缓存,请参阅任务关键型全局内容交付,了解使用合作伙伴 CDN 作为 Azure Front Door 回退的替代方法。

或者,如果使用缓存,但它不是应用程序交付策略的重要组成部分,请考虑是否可以横向扩展或纵向扩展源,以应对由于故障转移期间缓存未命中次数增加而导致的负载增加。

权衡

如果希望备用流量路径使用请求处理规则、WAF 和 TLS 卸载等功能,则这种类型的体系结构非常有用。 Azure Front Door 和应用程序网关都提供类似功能。

但是,有一些利弊:

  • 操作复杂性。 使用其中任一功能时,需要在 Azure Front Door 和应用程序网关上配置这些功能。 例如,如果对 Azure Front Door WAF 进行配置更改,则还需要将相同的配置更改应用于应用程序网关 WAF。 需要重新配置和测试两个单独的系统时,操作复杂性会高得多。

  • 功能奇偶一致性。 虽然 Azure Front Door 和应用程序网关提供的功能之间存在相似之处,但许多功能没有完全相同的奇偶校验。 请注意这些差异,因为它们可能会影响应用程序的交付方式,具体取决于它遵循的流量路径。

    应用程序网关不提供缓存。 有关此差异的详细信息,请参阅缓存

    Azure Front Door 和应用程序网关是不同的产品,具有不同的用例。 具体而言,这两种产品在部署到 Azure 区域的方式上有所不同。 确保了解每个产品的详细信息以及如何使用它们。

  • 成本。 通常需要将应用程序网关实例部署到具有源的每个区域。 由于每个应用程序网关实例单独计费,因此将源部署到多个区域时,成本可能会变得很高。

    如果成本是解决方案的重要因素,请参阅任务关键型全局内容交付,了解使用合作伙伴内容分发网络 (CDN) 作为 Azure Front Door 回退的替代方法。 某些 CDN 按使用量对流量进行计费,因此此方法可能更具成本效益。 但是,你可能会失去为解决方案使用应用程序网关的一些其他优势。

    或者,可以考虑部署一个替代体系结构,让流量管理器可以将流量直接路由到平台即服务 (PaaS) 应用程序服务,从而避免对应用程序网关的需求并降低成本。 如果为解决方案使用 Azure 应用服务或 Azure 容器应用等服务,则可以考虑此方法。 但是,如果遵循此方法,则需要考虑几个重要的权衡:

    • WAF:Azure Front Door 和应用程序网关都提供 WAF 功能。 如果直接向 Internet 公开应用程序服务,则可能无法使用 WAF 保护应用程序。
    • TLS 卸载:Azure Front Door 和应用程序网关都终止 TLS 连接。 需要将应用程序服务配置为终止 TLS 连接。
    • 路由:Azure Front Door 和应用程序网关跨多个源或后端(包括基于路径的路由)执行路由,它们支持复杂的传递规则。 如果应用程序服务直接向 Internet 公开,则无法执行流量路由。

警告

如果考虑直接向 Internet 公开应用程序,请创建一个彻底的威胁模型,并确保体系结构能够满足安全性、性能和复原能力要求。

如果使用虚拟机托管解决方案,则不应向 Internet 公开虚拟机。

后续步骤

查看全局内容交付方案,了解它是否适用于解决方案。