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

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 将它转发到用户。在这种情况下,CloudFront 还会将此对象添加到区域边缘缓存位置中的缓存以及 POP,方便查看器下次请求此对象。这将确保区域中的所有 POP 都共享本地缓存,从而消除了针对源服务器的多个请求。CloudFront 还将保留与源服务器的持久性连接,以便尽快从源中提取对象。

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

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

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

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

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


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