如何 CloudFront 提供内容 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

如何 CloudFront 提供内容

经过一些初始设置后, CloudFront 可以与您的网站或应用程序配合使用,从而加快内容的交付速度。本节说明了当观众提出要求时,如何 CloudFront 投放您的内容。

如何向用户 CloudFront 提供内容

配置 CloudFront 为交付内容后,当用户请求您的对象时,会发生以下情况:

  1. 用户访问您的网站或应用程序,并发送对于某个对象的请求,例如图像文件和 HTML 文件。

  2. DNS 将请求路由到最能满足请求 CloudFront 的 POP(边缘站点),就延迟而言,通常是最近 CloudFront 的 POP。

  3. CloudFront 检查其缓存中是否有请求的对象。如果对象在缓存中,则将其 CloudFront 返回给用户。如果对象在缓存中, CloudFront则执行以下操作:

    1. CloudFront 将请求与分配中的规格进行比较,然后将相应对象的请求转发到您的源服务器,例如,转发到您的 Amazon S3 存储桶或 HTTP 服务器。

    2. 源服务器将此对象发回给边缘站点。

    3. 一旦第一个字节从原点到达,就会 CloudFront 开始将对象转发给用户。 CloudFront 还会将该对象添加到缓存中,以备下次有人请求时使用。


					用户通过以下方式向源站发送请求和响应  CloudFront

CloudFront 如何使用区域边缘缓存

CloudFront 接入点(也称为 PoP边缘站点)确保热门内容可以快速提供给您的观众。 CloudFront 还具有区域边缘缓存,即使内容不够受欢迎,无法保持 POP,也可以让更多内容更接近观众,从而帮助提高该内容的性能。

区域边缘缓存可为所有类型的内容提供帮助,特别是随着时间的推移变得不太常用的内容。这样的示例包括用户生成的内容,例如视频、照片或插图;电子商务资产,例如产品照片和视频;以及新闻和事件相关的内容 (可能突然受到大众欢迎)。

区域缓存的工作方式

区域边缘缓存是在全球部署 CloudFront 的地点,靠近您的观众。它们位于源服务器和 POP(即全球边缘站点)之间,全球边缘站点直接为查看器提供内容。当对象的受欢迎程度降低时,各个 POP 可能会删除这些对象以便为更受欢迎的内容腾出空间。区域边缘缓存具有比各 POP 更大的缓存,因此对象将在最近的区域边缘缓存位置的缓存中保留更长时间。这有助于让更多内容更接近观众,减少 CloudFront 返回原始服务器的需求,并提高观众的整体性能。

当查看器在您的网站上或通过您的应用程序发出请求时,DNS 将请求传送到能以最佳方式满足用户请求的 POP。就延迟而言,此位置通常是最近的 CloudFront 边缘位置。在 POP 中, CloudFront检查其缓存中是否有请求的对象。如果对象在缓存中,则将其 CloudFront返回给用户。如果对象不在缓存中,POP 通常将转到最近的区域边缘缓存以提取此对象。有关 POP 何时跳过区域边缘缓存并直接转到源的更多信息,请参阅以下注释。

在区域边缘缓存位置, CloudFront 再次检查其缓存中是否有请求的对象。如果对象在缓存中,则将其 CloudFront 转发给请求它的 POP。当第一个字节从区域边缘缓存位置到达时,就会 CloudFront 开始将该对象转发给用户。 CloudFront 还会将该对象添加到 POP 的缓存中,以备下次有人请求时使用。

对于未在 POP 或区域边缘缓存位置缓存的对象,请将请求与您的分配中的规格 CloudFront 进行比较,然后将请求转发到源服务器。在您的源服务器将对象发送回区域边缘缓存位置后,它会被转发到 POP,然后将其 CloudFront 转发给用户。在这种情况下,除了 POP 之外, CloudFront 还会将对象添加到区域边缘缓存位置的缓存中,以备下次查看者请求时使用。这样可以确保一个区域中的所有 POP 共享一个本地缓存,从而消除对源服务器的多个请求。 CloudFront 还能保持与源服务器的永久连接,以便尽快从源服务器获取对象。

注意
  • 区域边缘缓存具有与 POP 同等的功能。例如,缓存失效请求将在对象过期之前,同时从 POP 缓存和区域边缘缓存中删除对象。查看器下次请求对象时, CloudFront 将返回源以获取对象的最新版本。

  • 代理 HTTP 方法(PUTPOSTPATCHOPTIONSDELETE)直接从 POP 流入源,并且不会通过代理流过区域边缘缓存。

  • 在请求时确定的动态请求不会流经区域边缘缓存,而是直接到达源。

  • 当源是 Amazon S3 存储桶且请求的最佳区域边缘缓存与 S3 存储桶位于同一 Amazon Web Services 区域时,POP 会跳过区域边缘缓存,直接进入 S3 存储桶。

下图说明了请求和响应如何流经 CloudFront 边缘位置和区域边缘缓存。


					从查看者通过 CloudFront 边缘站点和区域边缘缓存到源服务器的请求和响应路径示意图