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

使用 Azure Front Door 加速和保护 Web 应用程序

Azure Front Door 是全球分布式的内容分发网络 (CDN),它能够以更低的延迟更快地分发 Web 应用程序和内容。 此外,Front Door 可以实现最高级别的内容复原能力并提供广泛的功能,包括高级应用程序负载均衡器、流量加速和安全性。

请考虑在任何面向公众的 Web 应用程序前面部署 Front Door。

Azure 上架构良好的解决方案

Azure 架构良好的框架描述了卓越体系结构的五大要素。 Azure Front Door 使用其内置特性和功能来帮助你满足其中每个要素的要求。

性能效率

Front Door 提供多种功能来帮助加速应用程序的性能。

  • 缓存:Front Door 提供强大的内容分发网络 (CDN) 在网络边缘缓存内容。 几乎所有 Web 应用程序都包含可缓存的内容。 图像和 JavaScript 文件等静态资产是可缓存的内容。 此外,许多 API 返回可缓存的响应(尽管只能短时间缓存)。 缓存有助于提高应用程序的性能,并减少应用程序服务器上的负载。
  • 压缩:可以压缩许多响应类型,从而改善应用程序的响应时间。
  • 全球流量加速:Front Door 的全球流量加速功能通过 Microsoft 的高速主干网络路由请求,可帮助提高动态 Web 应用程序的性能
  • TLS 终止:与 Front Door 的连接在最近的 Front Door 接入点 (PoP) 处终止。 TLS 解密由 PoP 执行。 执行 TLS 解密时,初次握手最容易造成性能下降。 为了提高性能,执行解密的服务器会缓存 TLS 会话 ID 并管理 TLS 会话票证。 如果 TLS 连接在 Front Door PoP 处终止,则来自同一客户端的所有请求都可以使用缓存的值。 如果在源服务器上完成此操作,则每当客户端的请求转到其他服务器时,客户端都必须重新进行身份验证。 使用 TLS 票证有助于缓解此问题,但并非所有客户端都支持 TLS 票证,并且配置和管理这些票证可能有难度。

安全

Front Door 的安全功能有助于保护应用程序服务器免受多种不同类型的威胁。

  • 端到端 TLS:Front Door 支持端到端 TLS 加密。 Front Door TLS/SSL 卸载会终止 TLS 连接,解密 Azure Front Door 的流量,并在将流量转发到后端之前对其进行重新加密。
  • 托管 TLS 证书:Front Door 可以颁发和管理证书,确保应用程序受到强加密和信任的保护。
  • 自定义 TLS 证书:如果你需要使用自己的 TLS 证书,Front Door 允许你使用托管标识访问包含该证书的密钥保管库
  • Web 应用程序防火墙:Front Door 的 Web 应用程序防火墙 (WAF) 为应用程序提供一系列安全功能。 托管规则集扫描传入请求中的可疑内容。 机器人防护规则识别和响应来自机器人的流量。 地区筛选速率限制功能可保护应用程序服务器免受意外流量的危害。
  • 协议阻止:Front Door 只接受 HTTP 和 HTTPS 协议上的流量,并且将只处理具有已知 Host 标头的有效请求。 由于此行为,应用程序可以在一系列协议中免受多种类型的攻击。
  • DDoS 防护:由于 Front Door 的体系结构,它还可以消减大规模的分布式拒绝服务 (DDoS) 攻击并阻止流量进入应用程序。
  • 专用链接源:专用链接集成可帮助你保护后端应用程序,确保流量只有在通过 Front Door 及其安全保护机制的检测后才进入应用程序。

如果你必须满足严格的网络安全要求,可以使用 Azure Front Door 管理发往应用程序的入站 HTTP 和 HTTPS 流量,并使用 Azure 防火墙控制非 HTTP 和出口流量。

可靠性

使用 Front Door 可以创建可复原且高度可用的解决方案。

  • 负载均衡和故障转移:Front Door 是一个全局负载均衡器。 Front Door 监视源服务器的运行状况,如果源不可用,Front Door 可将请求路由到替代源。 你还可以使用 Front Door 在源之间分散流量,以减少任何一台源服务器上的负载。
  • 任意播路由:Front Door 本身有大量 PoP,每个 PoP 可为任何请求的流量提供服务。 任意播路由将流量定向到最近的可用 Front Door PoP,如果该 PoP 不可用,客户端会自动路由到下一个最近的 PoP。
  • 缓存:使用 Front Door 缓存可以减少应用程序服务器上的负载。 如果服务器不可用,Front Door 可能能够继续为缓存的响应提供服务,直到应用程序恢复。

成本优化

Front Door 可帮助你降低运行 Azure 解决方案的成本。

  • 缓存:启用缓存后,内容将从全局 Front Door 边缘节点返回。 此方法降低了全局带宽费用并提高了性能。
  • 压缩:当 Front Door 压缩响应时,它可以降低解决方案的带宽费用。
  • 跨源分散流量:使用 Front Door 可以减少扩展应用程序服务器的需要,或者过度预配服务器的容量来应对流量高峰。 每个 Front Door PoP 可以返回缓存的内容(如果可用),从而减少应用程序服务器上的负载。 你还可以在多个后端服务器之间分散流量,以减少每台服务器上的负载。
  • 共享配置文件:可以将一个 Front Door 配置文件用于许多不同的应用程序。 如果在 Front Door 中配置多个应用程序,可以在每个应用程序中分摊成本,并可以减少需要执行的配置。

卓越运营

Front Door 可以帮助减轻运行新式 Internet 应用程序的操作负担,并使你能够对解决方案进行某些类型的更改,而无需修改应用程序。

  • 托管 TLS 证书:Front Door 可以颁发和管理证书。 此功能意味着你无需管理证书续订,并可以减少因使用无效或已过期 TLS 证书而导致服务中断的可能性。
  • 通配符 TLS 证书:Front Door 支持通配符域(包括 DNS 和 TLS 证书),你可以使用多个主机名,而无需为每个子域重新配置 Front Door。
  • HTTP/2:Front Door 可帮助你通过 HTTP/2 支持对传统应用程序进行现代化改造,而无需修改应用程序服务器。
  • 规则引擎:使用 Front Door 规则引擎,可以在不影响客户端的情况下更改解决方案的内部体系结构。
  • 基础结构即代码:你还可以使用基础结构即代码 (IaC) 技术(包括 Bicep、Terraform、ARM 模板、Azure PowerShell 和 Azure CLI)来部署和配置 Front Door。

解决方案体系结构

部署使用 Azure Front Door 的解决方案时,应考虑流量如何从客户端流向 Front Door,以及如何从 Front Door 流向源。

下图演示了使用 Front Door 的常规解决方案体系结构:

Azure Front Door 将用户流量路由到终结点的关系图。

客户端到 Front Door

来自客户端的流量首先进入 Front Door PoP。 Front Door 具有全球分布的大量 PoP任意播将客户端路由到最近的 PoP。

当 Front Door 的 PoP 收到请求时,Front Door 将使用自定义域名处理该请求。 Front Door 使用 Front Door 托管的 TLS 证书或自定义 TLS 证书执行 TLS 卸载

PoP 根据你在 Front Door 配置文件中指定的配置执行许多功能,包括:

Front Door 处理完入站请求后,它将直接响应客户端(例如,在返回缓存的结果时),或者将请求转发到源。

从 Front Door 发送到源

Front Door 可以通过两种不同的方式将流量发送到源:使用专用链接和使用公共 IP 地址。

Front Door 高级 SKU 支持使用专用链接将流量发送到某些源类型。 为源配置专用链接时,流量将使用专用 IP 地址。 使用这种方法可确保源仅接受来自特定 Front Door 实例的流量,并且你可以阻止来自 Internet 的流量。

当 Front Door PoP 使用公共 IP 地址向源发送请求时,它会启动一个新的 TCP 连接。 由于这种行为,源服务器会看到源自 Front Door IP 地址而不是客户端的请求。

无论使用哪种方法将流量发送到源,良好的做法通常都是将源配置为根据 Front Door 配置文件处理流量,并阻止不流经 Front Door 的流量。 有关详细信息,请参阅保护发送到 Azure Front Door 源的流量

响应处理

Front Door 的 PoP 还会处理出站响应。 响应处理可能包括以下步骤:

  • 保存对 PoP 缓存的响应以加速后续请求。
  • 使用规则引擎修改响应头。

分析和报告

由于 Front Door 处理所有传入请求,因此它可以看到流经解决方案的所有流量。 可以使用 Front Door 的报告指标日志来了解流量模式。

提示

当你使用 Front Door 时,源服务器可能不处理某些请求。 例如,Front Door 的 WAF 可能会阻止某些请求,并可能为其他请求返回缓存的响应。 使用 Front Door 的遥测了解解决方案的流量模式。

后续步骤

了解如何创建 Front Door 配置文件