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

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

Azure Front Door 可以增强 Azure 存储 blob 的静态内容交付,并提供安全且可扩展的体系结构。 此设置非常适合各种用例,例如网站托管和文件传送。

体系结构

具有 Blob 存储源的 Azure Front Door 的示意图。

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

数据流

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

  1. 客户端使用自定义域名和 Front Door 提供的 TLS 证书与 Azure Front Door 建立安全连接。 连接在附近的 Front Door 接入点 (PoP) 处终止。
  2. Azure Front Door Web 应用程序防火墙 (WAF) 扫描请求。 如果 WAF 确定请求风险太大,则会阻止该请求并返回 HTTP 403 错误响应。
  3. 如果 Front Door PoP 的缓存包含有效响应,则 Front Door 会立即返回响应。
  4. 否则,PoP 会使用 Microsoft 的主干网络通过单独的长寿命 TCP 连接将请求发送到原始存储帐户。 在这种情况下,专用链接安全地连接到存储帐户。
  5. 存储帐户向 Front Door PoP 发送响应。
  6. PoP 会将响应存储在其缓存中,以供将来的请求使用。
  7. PoP 将响应返回给客户端。
  8. 通过互联网对存储帐户发出的任何直接请求都会被 Azure 存储防火墙阻止。

组件

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

备选方法

如果将静态文件存储在其他云存储提供商或你自己的基础设施上,此方案仍然基本适用。 但是,需要确保传入源服务器的流量经验证流经 Front Door。 如果存储提供商不支持专用链接,请考虑使用替代方法,例如将 Front Door 服务标记加入允许列表并检查 X-Azure-FDID 标头

场景详细信息

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

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

静态内容通常不会频繁更改,并且可能很大,因此非常适合高速缓存,以提高性能并降低成本。

在复杂情况下,单个 Front Door 配置文件可以同时提供静态和动态内容。 可以为每种类型的内容使用单独的原点组,并使用路由功能将传入请求定向到适当的原点。

注意事项

可伸缩性和性能

Azure Front Door 充当内容分发网络 (CDN),在其全球分布的 PoP 中缓存内容。 当缓存响应可用时,Azure Front Door 会快速提供该响应,从而提高性能并减轻原点的负载。 如果 PoP 缺少有效的缓存响应,Azure Front Door 的流量加速功能会加快从原点进行内容分发的速度。

安全性

身份验证

Azure Front Door 专为面向互联网的场景而设计,并针对可公开访问的 blob 进行了优化。 若要验证对 blob 的访问权限,请考虑使用共享访问签名 (SAS)。 确保启用使用查询字符串行为,以防 Azure Front Door 向未经身份验证的客户端发出请求。 此方法可能会限制缓存的有效性,因为必须将具有不同 SAS 的每个请求发送到原点。

原点安全性

Azure Front Door 使用专用链接安全地连接到 Azure 存储帐户。 存储帐户配置为拒绝直接互联网访问,仅允许通过 Azure Front Door 使用的专用终结点发出请求。 此设置可确保所有请求都由 Azure Front Door 处理,从而防止存储帐户直接暴露于互联网。 此配置需要 Azure Front Door 的高级层。 如果使用标准层,存储帐户必须可公开访问。 可以使用共享访问签名(SAS)保护请求,并让客户端在其请求中包含 SAS,或使用 Azure Front Door 规则引擎附加签名。

自定义域名

Azure Front Door 支持自定义域名,并且可以管理这些域的 TLS 证书。 使用自定义域可确保客户端从可靠来源接收文件,TLS 会加密与 Azure Front Door 的每个连接。 Azure Front Door 对 TLS 证书的管理有助于避免因证书无效或过期而导致的中断和安全问题。

Web 应用程序防火墙

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

此外,Azure Front Door WAF 还可以根据需要执行速率限制地理筛选

复原

Azure Front Door 是一项具有全球分布式体系结构的高可用性服务,使其能够应对单个 Azure 区域和 PoP 中的故障。

使用 Azure Front Door 缓存可减轻存储帐户的负载。 如果存储帐户不可用,Azure Front Door 可能会继续提供缓存的响应,直至应用程序恢复。

为了进一步提高弹性,请考虑存储帐户的冗余。 有关详细信息,请参阅 Azure 存储冗余。 或者,部署多个存储帐户并在 Azure Front Door 原点组中配置多个原点。 通过配置每个原点的优先级来设置原点之间的故障转移。 有关详细信息,请参阅 Azure Front Door 中的原点和原点组

成本优化

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

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

部署此方案

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

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

后续步骤

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