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

将 Azure Front Door 与 Azure 存储 Blob 配合使用

Azure Front Door 可以加速从 Azure 存储 Blob 分发静态内容,并实现安全且可缩放的体系结构。 静态内容分发可用于许多不同的用例,包括网站托管和文件分发。

体系结构

Diagram of Azure Front Door with a blob storage origin.

在此参考体系结构中,你将部署存储帐户和具有单个源的 Front Door 配置文件。

数据流

数据流经方案的情形如下所示:

  1. 客户端使用自定义域名和 Front Door 提供的 TLS 证书来与 Azure Front Door 建立安全连接。 客户端的连接在附近的 Front Door 接入点 (PoP) 处终止。
  2. Front Door Web 应用程序防火墙 (WAF) 扫描请求。 如果 WAF 确定请求的风险级别过高,则它会阻止请求,并且 Front Door 会返回 HTTP 403 错误响应。
  3. 如果 Front Door PoP 的缓存包含此请求的有效响应,则 Front Door 会立即返回响应。
  4. 否则,PoP 会使用 Microsoft 主干网络将请求发送到原始存储帐户,无论它位于全球的哪个位置。 PoP 使用单独的长生存期 TCP 连接连接到存储帐户。 在此方案中,专用链接用于安全连接到存储帐户。
  5. 存储帐户向 Front Door PoP 发送响应。
  6. 当 PoP 收到响应时,它会将其存储在缓存中以供后续请求使用。
  7. PoP 将响应返回给客户端。
  8. Azure 存储防火墙阻止通过 Internet 直接向存储帐户发出的任何请求。

组件

  • Azure 存储将静态内容存储在 Blob 中。
  • Azure Front Door 从客户端接收入站连接,使用 WAF 扫描它们,将请求安全地转发到存储帐户,并缓存响应。

备选方法

如果你在另一个云存储提供商中有静态文件,或者如果在你拥有和维护的基础结构上托管静态内容,则此方案的大部分内容仍然适用。 但是,需要考虑如何保护发源服务器的传入流量,以验证传入流量是否通过 Front Door。 如果存储提供商不支持专用链接,请考虑使用替代方法,例如将 Front Door 服务标记加入允许列表并检查 X-Azure-FDID 标头

方案详细信息

静态内容分发在许多情况下都很有用,例如:

  • 为 Web 应用程序分发图像、CSS 文件和 JavaScript 文件。
  • 提供文件和文档,例如 PDF 文件或 JSON 文件。
  • 传送非流式处理视频。

静态内容在性质上不会频繁更改。 静态文件也可能很大。 这些特征使其成为缓存的理想选择,可以提高性能并降低服务请求的成本。

在复杂方案中,单个 Front Door 配置文件可能会提供静态内容和动态内容。 可为每种类型的源使用单独的源组,并使用 Front Door 的路由功能将传入请求路由到正确的源。

注意事项

可伸缩性和性能

作为内容分发网络 (CDN),Front Door 在其全球分布的 PoP 网络中缓存内容。 当响应的缓存副本在 PoP 中可用时,Front Door 可以使用缓存的响应快速提供响应。 从缓存返回内容提高了解决方案的性能,并减少了源上的负载。 如果 PoP 没有有效的缓存响应,Front Door 的流量加速功能会减少从源提供内容的时间。

安全性

身份验证

Front Door 设计为面向 Internet,并且此方案针对公开可用的 Blob 进行了优化。 如果你需要对 Blob 访问进行身份验证,请考虑使用共享访问签名,并确保启用使用查询字符串”查询字符串行为以避免 Front Door 向未经身份验证的客户端提供服务请求。 但是,此方法可能无法有效利用 Front Door 缓存,因为每个具有不同共享访问签名的请求都必须单独发送到源。

源安全性

Front Door 使用专用链接安全连接到 Azure 存储帐户。 存储帐户配置为拒绝来自 Internet 的直接访问,并且仅允许通过 Front Door 使用的专用终结点连接发送的请求。 此配置可确保 Front Door 处理每个请求,并避免将存储帐户的内容直接公开到 Internet。 但是,此配置需要 Azure Front Door 的高级层。 如果使用标准层,则必须公开访问存储帐户。 可以使用共享访问签名来保护对存储帐户的请求,或者让客户端在其所有请求中包含签名,或使用 Front Door 规则引擎从 Front Door 附加签名。

自定义域名

Front Door 支持自定义域名,并可为这些域颁发和管理 TLS 证书。 使用自定义域可以确保客户端从受信任且熟悉的域名接收文件,并且 TLS 会加密与 Front Door 的每个连接。 当 Front Door 管理 TLS 证书时,你可以避免因 TLS 证书无效或过时而导致的中断和安全问题。

Azure 存储还支持自定义域名,但在使用自定义域时不支持 HTTPS。 Front Door 是将自定义域名与存储帐户一起使用的最佳方法。

Web 应用程序防火墙

Front Door WAF 的托管规则集扫描常见和新兴安全威胁的请求。 我们建议对静态和动态应用程序使用 WAF 和托管规则。

如果需要这些功能,还可以使用 Front Door WAF 执行速率限制地区筛选

复原

Front Door 是高度可用的服务,并且由于其全局分布式体系结构,它可以灵活应对单个 Azure 区域和 PoP 的故障。

使用 Front Door 缓存可以减少存储帐户的负载。 此外,如果存储帐户不可用,Front Door 可能能够继续为缓存的响应提供服务,直到应用程序恢复。

可以通过考虑存储帐户的复原能力来进一步提高整体解决方案的复原能力。 有关详细信息,请参阅 Azure 存储冗余。 或者,可以部署多个存储帐户,在 Front Door 源组中配置多个源,并通过配置每个源的优先级来配置源之间的故障转移。 有关详细信息,请参阅 Azure Front Door 中的原点和原点组

成本优化

缓存有助于降低分发静态内容的成本。 Front Door 的 PoP 会存储响应的副本,并可为任何后续请求提供这些缓存的响应。 缓存减少了源上的请求负载。 在基于静态内容的大规模解决方案中(尤其是那些分发大型文件的解决方案中),缓存可以大幅降低流量成本。

若要在此解决方案中使用专用链接,必须部署 Front Door 高级层。 如果不需要阻止直接进入存储帐户的流量,则可以使用标准层。 有关详细信息,请参阅源安全性

部署此方案

若要使用 Bicep 或 JSON ARM 模板部署此方案,请参阅此快速入门

若要使用 Terraform 部署此方案,请参阅此快速入门

后续步骤

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