您创建或更新分配时指定的值 - Amazon CloudFront

您创建或更新分配时指定的值

当您使用 CloudFront 控制台创建新的分配或更新现有的分配时,请指定以下值。

有关使用 CloudFront 控制台创建或更新分配的更多信息,请参阅创建分配更新分配

传送方式

当您创建分配时可指定传送方式。您无法更改现有分配的传送方式。您可以选择 WebRTMP。选择 Web,除非您将 Adobe Flash Media Server 与 RTMP 结合使用。

注意

Adobe 宣布将在 2020 年末停用 Flash。因此,Amazon CloudFront 将不再支持 Adobe Flash Media Server,并将在 2020 年 12 月 31 日前弃用实时消息协议 (RTMP) 发行版。有关更多信息,请参阅 Amazon CloudFront 开发论坛上的完整通告

源设置

以下值适用于所有类型的源:

以下值仅适用于 Amazon S3 源( 使用 S3 静态网站终端节点的那些源):

以下值仅适用于自定义源,例如 Amazon EC2 实例、Elastic Load Balancing 负载均衡器、MediaPackage 源、MediaStore 容器或您自己的 Web 服务器:

缓存行为设置

以下值适用于 Default Cache Behavior Settings (默认缓存行为设置)(创建分配时)以及之后创建的其他缓存行为。

以下值适用于 Lambda Function Associations (Lambda 函数关联)

分配设置

自定义错误页面和错误缓存

限制

源设置

当您创建或更新分配时,您可提供有关一个或多个位置(被称为源)的信息,此位置是您存储原版本 web 内容的地方。CloudFront 从您的源获取 Web 内容,并通过世界各地的网络边缘服务器将其他提供给查看器。每个源要么是 Amazon S3 存储桶,要么是 HTTP 服务器,例如,Web 服务器。

有关您可以为分配创建的源的当前最大数量或要请求提高配额(以前称为限制),请参阅Web 分配的一般配额

如果您想删除源,您首先必须编辑或删除与该源有关的缓存行为。

重要

如果您删除源,请确认该源先前提供的文件在另一源中可用,且您的缓存行为将这些文件的请求路由到新的源。

当您创建或更新分配时,您可为每个源指定以下值。

源域名

您希望 CloudFront 从中获取此源的对象的 Amazon S3 存储桶或 HTTP 服务器的 DNS 名称,例如:

  • Amazon S3 存储桶awsexamplebucket.s3.us-west-2.amazonaws.com

    注意

    如果您最近创建了 S3 存储桶,则 CloudFront 分配最长可能需要 24 小时才能返回 HTTP 307 Temporary Redirect 响应。S3 存储桶名称最长可能需要 24 小时才能传播到所有 AWS 区域。在传播完成后,分配将自动停止发送这些重定向响应;您无需执行任何操作。有关更多信息,请参阅为什么我会从 Amazon S3 获得 HTTP 307 临时重定向响应?临时请求重定向

  • 配置为网站的 S3 存储桶https://awsexamplebucket.s3-website.us-west-2.amazonaws.com

  • MediaStore 容器examplemediastore.data.mediastore.us-west-1.amazonaws.com

  • MediaPackage 终端节点examplemediapackage.mediapackage.us-west-1.amazonaws.com

  • Amazon EC2 实例ec2-203-0-113-25.compute-1.amazonaws.com

  • Elastic Load Balancing 负载均衡器example-load-balancer-1234567890.us-west-2.elb.amazonaws.com

  • 您自己的 Web 服务器https://example.com

源域名字段中选择域名或键入域名。域名不区分大小写。

如果您的源是 Amazon S3 存储桶,请注意以下事项:

  • 如果存储桶被配置为网站,请输入存储桶的 Amazon S3 静态网站托管终端节点;不要从源域名字段的列表中选择存储桶名称。该静态网站托管终端节点显示在 Amazon S3 控制台的属性页面中的静态网站托管下。有关更多信息,请参阅使用配置为您的源的网站终端节点的 Amazon S3 存储桶

  • 如果您已为存储桶配置 Amazon S3 Transfer Acceleration,请不要为源域名指定 s3-accelerate 终端节点。

  • 如果您要从不同的 AWS 账户使用存储桶,而且该存储桶没有配置为网站,请按以下格式输入名称:

    bucket-name.s3.region.amazonaws.com

    如果存储桶位于美国标准区域,并且您希望 Amazon S3 将请求路由到位于弗吉尼亚北部的设施,请使用以下格式:

    bucket-name.s3.us-east-1.amazonaws.com

  • 文件必须公开可读,除非您使用 CloudFront 源访问身份确保 Amazon S3 中内容的安全。有关更多信息,请参阅 使用源访问身份限制对 Amazon S3 内容的访问

重要

如果源是 Amazon S3 存储桶,存储桶名称必须符合 DNS 命名要求。有关更多信息,请转至《Amazon Simple Storage Service 开发人员指南》中的存储桶限制

当您更改源的源域名值时,CloudFront 立即开始替换 CloudFront 边缘站点的更改。在特定边缘站点中的分配配置得到更新之前,CloudFront 会继续将请求转发到先前的 HTTP 服务器或 Amazon S3 存储桶。该边缘站点中的分配配置一经更新,CloudFront 就开始将请求转发到新的 HTTP 服务器或 Amazon S3 存储桶。

更改源并不要求 CloudFront 用新源中的对象重新填充边缘缓存。只要应用程序中的查看器请求未经更改,CloudFront 就会继续提供边缘缓存中已有的对象,直至每个对象的 TTL 过期或直至很少被请求的对象被逐出。

源路径

如果您希望 CloudFront 从 AWS 资源或自定义源的目录中请求内容,请以斜杠 (/) 开头输入目录路径。CloudFront 将目录路径附加到源域名的值,例如 cf-origin.example.com/production/images。请不要在路径的末尾添加斜杠 (/)。

例如,假设已为分配指定以下值:

  • 源域名 – 名为 myawsbucket 的 Amazon S3 存储桶

  • 源路径/production

  • 备用域名 (CNAME)example.com

当用户在浏览器中输入 example.com/index.html 时,CloudFront 会针对 myawsbucket/production/index.html 向 Amazon S3 发送请求。

当用户在浏览器中输入 example.com/acme/index.html 时,CloudFront 会针对 myawsbucket/production/acme/index.html 向 Amazon S3 发送请求。

源 ID

唯一区分此分配中的该源或源组的字符串。如果您创建默认缓存行为之外的缓存行为,可以使用在此指定的 ID 标识您希望 CloudFront 在请求与该缓存行为的路径模式匹配时将请求路由到的源或源组。

有关更多信息,请参阅下列内容:

源连接尝试次数

CloudFront 尝试连接到源的次数。您可以指定 1、2 或 3 作为尝试次数。默认次数(如果您没有另行指定)为 3。

将此设置与源连接超时一起使用,可指定 CloudFront 在尝试连接到辅助源或向查看器返回错误响应之前等待多长时间。默认情况下,CloudFront 在尝试连接到辅助源或返回错误响应之前等待长达 30 秒(3 次尝试,每次 10 秒)。您可以通过指定更少的尝试次数、更短的连接超时或两者来减少此时间。

如果指定次数的连接尝试失败,CloudFront 执行以下操作之一:

  • 如果源是源组的一部分,CloudFront 尝试连接到辅助源。如果指定次数的连接尝试失败,则 CloudFront 向查看器返回错误响应。

  • 如果源不是源组的一部分,则 CloudFront 向查看器返回错误响应。

对于自定义源(包括配置了静态网站托管的 Amazon S3 存储桶),此设置还指定 CloudFront 尝试从源获取响应的次数。有关更多信息,请参阅 源响应超时

源连接超时

CloudFront 尝试建立与源的连接时等待的秒数。您可以指定 1 到 10 之间(含)的秒数。默认超时(如果您没有另行指定)为 10 秒。

将此设置与源连接尝试次数一起使用,可指定 CloudFront 在尝试连接到辅助源或向查看器返回错误响应之前等待多长时间。默认情况下,CloudFront 在尝试连接到辅助源或返回错误响应之前等待长达 30 秒(3 次尝试,每次 10 秒)。您可以通过指定更少的尝试次数、更短的连接超时或两者来减少此时间。

如果 CloudFront 未在指定的秒数内建立到源的连接, CloudFront 执行以下操作之一:

  • 如果指定的源连接尝试次数次数超过 1,CloudFront 将再次尝试建立连接。CloudFront 最多尝试 3 次,具体取决于源连接尝试次数的值。

  • 如果所有连接尝试都失败,并且源是源组的一部分,则 CloudFront 尝试连接到辅助源。如果指定次数的连接尝试失败,则 CloudFront 向查看器返回错误响应。

  • 如果所有连接尝试都失败,且源不是源组的一部分,则 CloudFront 向查看器返回错误响应。

源自定义标头

如果您希望 CloudFront 在将请求发送到源时添加自定义标头,请指定以下值:

标头名称

您希望 CloudFront 添加到它发送到源的请求中的标头的名称。

您在自定义标头字段中指定的标头的值。

有关更多信息,请参阅 向源请求添加自定义标头

有关可转发到源的自定义标头的当前最大数目、自定义标头名称和值的最大长度,以及所有标头名称和值的最大总长度,请参阅配额

限制存储桶访问

注意

这仅适用于 Amazon S3 存储桶源( 使用 S3 静态网站终端节点的那些源)。

如果您希望用户仅使用 CloudFront URL 而非 Amazon S3 URL 访问 Amazon S3 存储桶中的对象,请选择。然后,指定其他值。

如果您希望用户能够使用 CloudFront URL 或 Amazon S3 URL 访问对象,请选择

有关更多信息,请参阅 使用源访问身份限制对 Amazon S3 内容的访问

有关如何要求用户仅使用 CloudFront URL 访问自定义源上的对象的信息,请参阅 在自定义源上限制对文件的访问

源访问身份

注意

这仅适用于 Amazon S3 存储桶源( 使用 S3 静态网站终端节点的那些源)。

对于限制存储桶访问,如果您选择,则选择是否新建源访问身份或使用与您的 AWS 账户有关的现有身份。如果您已经具有源访问身份,我们建议您重新使用它来简化维护。有关源访问身份的更多信息,请参阅 使用源访问身份限制对 Amazon S3 内容的访问

注释

注意

这仅适用于 Amazon S3 存储桶源( 使用 S3 静态网站终端节点的那些源)。

对于源访问身份,如果您选择创建新身份,则输入识别新的源访问身份的注释。当您创建此分配时,CloudFront 将创建源访问身份。

您的标识

注意

这仅适用于 Amazon S3 存储桶源( 使用 S3 静态网站终端节点的那些源)。

如果为源访问身份选择使用现有的身份,则选择您想要使用的源访问身份。您不能使用与另一个 AWS 账户关联的源访问身份。

授予对存储桶的读取权限

注意

这仅适用于 Amazon S3 存储桶源( 使用 S3 静态网站终端节点的那些源)。

如果您希望 CloudFront 自动授予读取 Amazon S3 存储桶中对象的源访问身份权限,请选择是,更新存储桶策略

重要

如果您选择是,更新存储桶策略,则 CloudFront 将更新存储桶策略,以授予指定的源访问身份读取存储桶中对象的权限。但是,CloudFront 并不删除存储桶政策中现有的权限或个别对象的权限。如果用户目前具有使用 Amazon S3 URL 访问存储桶中对象的权限,则他们在 CloudFront 更新存储桶政策后仍具有该权限。要查看或更改现有存储桶政策以及对存储桶中对象的现有权限,使用 Amazon S3 提供的方法。有关更多信息,请参阅授予 OAI 读取 Amazon S3 存储桶中文件的权限

如果您想要手动更新权限,例如,更新对象的 ACL 而不是更新存储桶权限,请选择 否,我将更新权限

最低限度源 SSL 协议

注意

这仅适用于自定义源。

选择 CloudFront 在建立与您的源的 HTTPS 连接时可以使用的最低限度 TLS/SSL 协议。降低 TLS 协议级别会降低安全性,因此我们建议您选择您的源支持的最新 TLS 协议。

如果您使用 CloudFront API 设置 CloudFront 要使用的 TLS/SSL 协议,则无法设置最低协议。而是要指定 CloudFront 可以用于您的源的所有 TLS/SSL 协议。有关更多信息,请参阅《Amazon CloudFront API 参考》中的 OriginSslProtocols

源协议策略

注意

这仅适用于自定义源。

您希望 CloudFront 从您的源服务器获取对象时使用的协议政策。

选择以下任一值:

  • 仅 HTTP:CloudFront 仅使用 HTTP 访问源。

    重要

    当源是 Amazon S3 静态网站托管终端节点时,仅 HTTP 是默认设置,因为 Amazon S3 不支持对静态网站托管终端节点使用 HTTPS 连接。CloudFront 控制台不支持更改 Amazon S3 静态网站托管终端的此设置。

  • 仅 HTTPS:CloudFront 仅使用 HTTPS 访问源。

  • 匹配查看器:CloudFront 使用 HTTP 或 HTTPS 与源进行通信,具体取决于查看器请求协议。请注意,CloudFront 仅缓存对象一次,即使查看器使用 HTTP 和 HTTPS 协议发出请求。

    重要

    对于 CloudFront 转发到该源的 HTTPS 查看器请求,源服务器上的 SSL 证书中的域名之一必须与为源域名指定的域名匹配。否则,CloudFront 将使用 HTTP 状态代码 502(无效网关)响应查看器请求,而不是返回请求的对象。有关更多信息,请参阅在 CloudFront 中使用 SSL/TLS 证书的要求

源响应超时

注意

这仅适用于自定义源。

来源响应超时(也称为来源读取超时来源请求超时)适用于以下两个值:

  • CloudFront 在将请求转发到源后等待响应的时间长度(以秒为单位)。

  • CloudFront 从收到来自源的一个响应数据包到收到下一个数据包之间等待的时间长度(以秒为单位)。

默认超时时间为 30 秒。您可以将此值更改为 1 到 60 秒的值。如果您需要超出该范围的超时值,请在 AWS Support 中心创建案例

提示

如果您由于查看器遇到了 HTTP 504 状态代码错误而希望增加超时值,请考虑探索其他方法来在更改超时值之前消除这些错误。请参阅 HTTP 504 状态代码 (Gateway Timeout) 中的故障排除建议。

CloudFront 行为取决于查看器请求中的 HTTP 方法:

  • GETHEAD 请求 – 如果源在响应超时的持续时间内没有响应或停止响应,则 CloudFront 中断连接。CloudFront 根据 源连接尝试次数 的值再次尝试进行连接。

  • DELETEOPTIONSPATCHPUTPOST 请求 – 如果源在读取超时期间未响应,CloudFront 将中断连接并且不会再次尝试联系源。如有必要,客户端可以重新提交请求。

来源保持连接超时

注意

这仅适用于自定义源。

CloudFront 在获取最后一个响应数据包后尝试保持与自定义来源的连接的时间长度(以秒为单位)。保持持久性连接可节省重新建立 TCP 连接和执行后续请求的另一个 TLS 握手所需的时间。增加保持连接超时有助于改善分配的每连接请求指标。

注意

为了让 Origin Keep-alive Timeout 值生效,源必须配置为允许持久性连接。

默认超时时间为 5 秒。您可以将此值更改为 1 到 60 秒内的值。如果您需要超过 60 秒的保持活动超时,请在 AWS Support 中心创建案例

HTTP 端口

注意

这仅适用于自定义源。

可选。自定义源侦听的 HTTP 端口。有效值包括端口 80、443 和 1024 至 65535。默认值为端口 80。

重要

当源是 Amazon S3 静态网站托管终端节点时,端口 80 是默认设置,因为 Amazon S3 仅对静态网站托管终端节点支持端口 80。CloudFront 控制台不支持更改 Amazon S3 静态网站托管终端的此设置。

HTTPS 端口

注意

这仅适用于自定义源。

可选。自定义源侦听的 HTTPS 端口。有效值包括端口 80、443 和 1024 至 65535。默认值为端口 443。

缓存行为设置

缓存行为让您为您网站上文件的特定 URL 路径模式配置各种 CloudFront 功能。例如,一个缓存行为可能适用于您用作 CloudFront 源服务器的 Web 服务器上 images 目录中所有的 .jpg 文件。您可为每个缓存行为配置的功能包括:

  • 路径模式。

  • 如果您已经为 CloudFront 分配配置了多个源,您希望 CloudFront 将您的请求转发到哪个源。

  • 是否将查询字符串转发到源。

  • 是否访问指定文件需要签名 URL。

  • 是否要求用户使用 HTTPS 访问那些文件。

  • 那些文件保留在 CloudFront 缓存中的最短时间量,不管您的源添加到文件中任何 Cache-Control 标头的值。

当您创建新分配时,您为默认缓存行为指定设置,这将自动把所有请求转发到您创建分配时指定的源中。在创建分配后,您可创建其他缓存行为,该行为定义 CloudFront 在其接受与路径模式相匹配的对象请求时如何响应,例如,*.jpg。如果您创建其他缓存行为,默认缓存行为始终是最后一个被处理的。其他缓存行为以他们在 CloudFront 控制台中所列的顺序进行处理,或者,如果您使用 CloudFront API,以他们在分配 DistributionConfig 元素中所列的顺序进行处理。有关更多信息,请参阅路径模式

当您创建缓存行为是,可指定您希望 CloudFront 从中获取对象的一个源。因此,如果您希望 CloudFront 分配所有源的对象,必须至少具有与您所拥有的源一样多的缓存行为(包括默认缓存行为)。例如,如果您有两个源但只有一个默认缓存行为,则默认缓存行为将导致 CloudFront 从其中一个源获取对象,但永远不会使用另一个源。

有关您可以添加到分配的当前最大缓存行为数,或要请求提高配额(以前称为限制),请参阅Web 分配的一般配额

路径模式

路径模式(例如,images/*.jpg)指定您希望该缓存行为所适用的请求。CloudFront 收到查看器请求时,会按照缓存行为在分配中列出的顺序,将请求路径与路径模式进行比较。第一个匹配者决定了哪个缓存行为适用于该请求。例如,假设您具有以下三个路径模式的三个缓存行为,顺序如下:

  • images/*.jpg

  • images/*

  • *.gif

注意

可以选择在路径模式的开头包含斜杠 (/),例如 /images/*.jpg。无论开头是否有 /,CloudFront 行为都相同。

文件 images/sample.gif 的请求不符合第一个路径模式,因此,相关的缓存行为不适用于该请求。文件符合第二路径模式,因此,与第二个路径模式有关的缓存行为适用,即使该请求与第三个路径模式也匹配。

注意

在创建新的分配时,默认缓存行为的路径模式的值将设置为 *(所有文件)且无法更改。此值导致 CloudFront 将您对象的所有请求转发到您在 源域名 字段中指定的源。如果对象的请求与任何其他缓存行为的路径模式都不匹配,CloudFront 将应用您在默认缓存行为中指定的行为。

重要

请谨慎定义路径模式及其顺序,否则您可能会向用户提供非预期的内容访问权限。例如,假设请求匹配两个缓存行为的路径模式。第一个缓存行为不要求签名 URL,而第二个缓存行为要求签名 URL。用户无需使用签名 URL 即可访问对象,因为 CloudFront 处理与第一个匹配有关的缓存行为。

如果您正在使用 MediaPackage 通道,则必须为您为源的终端节点类型定义的缓存行为包含特定的路径模式。例如,对于 DASH 终端节点,为路径模式键入 *.mpd。有关更多信息和具体说明,请参阅提供使用 AWS Elemental MediaPackage 格式化的实时视频

您指定的路径适用于指定目录以及该指定目录下所有子目录中所有文件的请求。在评估路径模式时,CloudFront 不会考虑查询字符串或 Cookie。例如,如果images目录包含 product1product2 子目录,此路径模式images/*.jpg适用于 imagesimages/product1images/product2 目录中任何 .jpg 文件的请求。如果您希望将不同的缓存行为应用于 images/product1 目录中的文件而非 imagesimages/product2 目录中文件,为 images/product1 创建单独的缓存行为,并将该缓存行为移到 images 目录中缓存行为上方 (前面) 的位置。

您可在路径模式中使用以下通配符:

  • *匹配 0 或多个字符。

  • ?精准匹配 1 个字符。

以下示例展示了通配符如何工作:

路径模式 与路径模式匹配的文件

*.jpg

所有 .jpg 文件

images/*.jpg

images目录及该images目录下子目录中所有的 .jpg 文件

a*.jpg

  • 文件名以 a 开头的所有 .jpg 文件,例如,apple.jpgappalachian_trail_2012_05_21.jpg

  • 文件路径以 a 开头的所有 .jpg 文件,例如,abra/cadabra/magic.jpg

a??.jpg

文件名以 a 开头且随后紧跟两个其他字符的所有 .jpg 文件,例如,ant.jpgabe.jpg

*.doc*

文件扩展名以 .doc 开头的所有文件,例如,.doc.docx.docm 文件。在这种情况下,您不能使用路径模式*.doc?,因为该路径模式不适用于.doc文件的请求;?通配符精确替换一个字符。

路径模式的长度上限是 255 个字符。该值可包含以下任何字符:

  • A-Z, a-z

    路径模式区分大小写,因此,路径模式 *.jpg 不适用于文件 LOGO.JPG

  • 0-9

  • _ - . * $ / ~ " ' @ : +

  • &,作为 & 传递和返回

源或源组

输入现有源或源组的值。该值标识当请求(如 https://example.com/logo.jpg)与缓存行为(如 *.jpg)或默认缓存行为 (*) 的路径模式匹配时,您希望 CloudFront 将请求路由至的源或源组。

查看器协议政策

选择您希望查看器用来访问 CloudFront 边缘站点中的内容的协议策略:

  • HTTP 和 HTTPS:查看器可使用两种协议。

  • Redirect HTTP to HTTPS (将 HTTP 重定向到 HTTPS):查看器可使用两种协议,但 HTTP 请求将自动重定向到 HTTP 请求。

  • 仅 HTTPS:如果查看器使用了 HTTPS,则只能访问您的内容。

有关更多信息,请参阅 要求在查看器和 CloudFront 之间使用 HTTPS 进行通信

允许的 HTTP 方法

指定您希望 CloudFront 处理并转发到源的 HTTP 方法:

  • GET、HEAD:您只能使用 CloudFront 获取您源中的对象或获取对象标头。

  • GET、HEAD、OPTIONS:您只能使用 CloudFront 从源获取对象、获取对象标头或检索您的源服务器支持的选项列表。

  • GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE:您可以使用 CloudFront 获取、添加、更新和删除对象以及获取对象标头。此外,您可以执行其他 POST 操作,例如从 Web 表格提交数据。

    注意

    CloudFront 将缓存对 GETHEAD 请求以及(可选)OPTIONS 请求的响应。CloudFront 不缓存对使用其他方法的请求的响应。

如果您使用 Amazon S3 存储桶作为分配的源,并且使用 CloudFront 源访问身份,则 POST 请求在某些 Amazon S3 区域中不受支持,并且这些区域中的 PUT 请求需要附加标头。有关更多信息,请参阅在仅支持签名版本 4 身份验证的 Amazon S3 区域中使用 OAI

重要

如果您选择 GET, HEAD, OPTIONSGET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE,则可能需要限制对 Amazon S3 存储桶或自定义源的访问,以阻止用户执行您不希望他们执行的操作。以下示例说明了如何限制访问:

  • 如果将 Amazon S3 作为您的分配的源:创建 CloudFront 源访问身份以限制对您的 Amazon S3 内容的访问,并为源访问身份授予权限。例如,您将 CloudFront 配置为接受并转发这些方法只是因为您想要使用 PUT,则仍必须配置 Amazon S3 存储桶策略或 ACL 以适当处理 DELETE 请求。有关更多信息,请参阅使用源访问身份限制对 Amazon S3 内容的访问

  • 如果您使用自定义源:配置源服务器以处理所有方法。例如,您将 CloudFront 配置为接受并转发这些方法只是因为您想要使用 POST,则仍必须配置您的源服务器以适当处理 DELETE 请求。

字段级加密配置

如果您要对特定数据字段强制实施字段级加密,则在下拉列表中选择一个字段级加密配置。

有关更多信息,请参阅 使用字段级加密帮助保护敏感数据

缓存的 HTTP 方法

指定您是否希望 CloudFront 在查看器提交 OPTIONS 请求时缓存来自源的响应。CloudFront 始终缓存对 GETHEAD 请求的响应。

基于选择的请求标头进行缓存

指定您是否要 CloudFront 基于指定标头的值缓存对象:

  • 无(改进缓存) – CloudFront 不根据标头值缓存您的对象。

  • 白名单 – CloudFront 仅根据指定标头的值缓存您的对象。使用白名单标头选择您希望 CloudFront 进行缓存所基于的标头。

  • 所有 – CloudFront 不缓存与该缓存行为关联的对象。相反,CloudFront 会将每个请求发送到源。(不建议用于 Amazon S3 源。)

无论您选择哪个选项,CloudFront 都会将特定标头转发到您的源并根据您转发的标头执行特定操作。有关 CloudFront 如何处理标头转发的更多信息,请参阅HTTP 请求标头和 CloudFront 行为(自定义源和 S3 源)

有关如何使用请求标头在 CloudFront 中配置缓存的更多信息,请参阅根据请求标头缓存内容

白名单标头

指定您希望 CloudFront 在缓存对象时考虑的标头。从可用标头列表中选择标头,然后选择添加。要转发自定义标头,请在字段中输入标头的名称,然后选择 Add Custom

有关您可以为每个缓存行为列入白名单的当前最大标头数,或者要请求提高配额(以前称为限制),请参阅有关自定义标头的配额(仅限 Web 分配)

对象缓存

如果源服务器将 Cache-Control 标头添加到对象以控制在 CloudFront 缓存中保留对象的时间长度,并且您不希望更改 Cache-Control 值,请选择使用源缓存标头

要指定在 CloudFront 缓存中保留对象的最短时间和最长时间(不管 Cache-Control 标头如何)以及在缺少 Cache-Control 标头时在 CloudFront 缓存中保留对象的默认时间,请选择自定义。然后,在最小 TTL默认 TTL最大 TTL 字段中指定值。

有关更多信息,请参阅 管理内容保留在缓存中的时间长度(过期)

最小 TTL

指定您希望对象在 CloudFront 缓存中保留的最短时间(以秒为单位),在此时间之后,CloudFront 会向您的源转发另一个请求以确定此对象是否已更新。最小 TTL 的默认值是 0 秒。

重要

如果您将 CloudFront 配置为针对缓存行为将所有标头转发到源,则 CloudFront 绝不会缓存关联的对象。相反,CloudFront 会将这些对象的所有请求转发到源。在该配置中,最小 TTL 的值必须为 0。

要指定 Minimum TTL 的值,您必须为 Object Caching 设置选择 Customize 选项。

有关更多信息,请参阅 管理内容保留在缓存中的时间长度(过期)

最大 TTL

指定您希望在 CloudFront 查询您的源以了解对象是否已更新之前,对象保留在 CloudFront 缓存中的最大时长(以秒为单位)。您为最大 TTL 指定的值仅在源向对象添加 HTTP 标头 (例如 Cache-Control max-ageCache-Control s-maxageExpires) 时适用。有关更多信息,请参阅管理内容保留在缓存中的时间长度(过期)

要指定 Maximum TTL 的值,您必须为 Object Caching 设置选择 Customize 选项。

Maximum TTL 的默认值为 31536000 秒 (一年)。如果您将 Minimum TTLDefault TTL 的值更改为一个大于 31536000 秒的值,则 Maximum TTL 的默认值将变为 Default TTL 的值。

默认 TTL

指定您希望对象在 CloudFront 缓存中保留的默认时间(以秒为单位),在此时间之后,CloudFront 会向您的源转发另一个请求以确定此对象是否已更新。您为 Default TTL 指定的值仅在源 向对象添加 HTTP 标头 (例如 Cache-Control max-ageCache-Control s-maxageExpires) 时适用。有关更多信息,请参阅管理内容保留在缓存中的时间长度(过期)

要指定 Default TTL 的值,您必须为 Object Caching 设置选择 Customize 选项。

Default TTL 的默认值为 86400 秒 (一天)。如果您将 Minimum TTL (最短 TTL) 的值更改为一个大于 86400 秒的值,则 Default TTL (默认 TTL) 的默认值将更改为 Minimum TTL (最短 TTL) 的值。

转发 Cookie

注意

此选项仅适用于配置为网站终端节点的 Amazon S3 存储桶。

指定是否希望 CloudFront 转发 Cookie 到您的源服务器,以及指定转发哪些 Cookie。如果您选择仅转发选定的 Cookie(Cookie 白名单),则在白名单 Cookie 字段中输入 Cookie 的名称。如果选择全部,不管您的应用程序使用多少,CloudFront 都会转发所有 Cookie。

Amazon S3 不处理 cookie,且将 cookie 转发到源会降低缓存能力。对于将请求转发到 Amazon S3 源的缓存行为,请对转发 Cookie 选择

有关转发 cookie 到源的更多信息,请转至 根据 Cookie 缓存内容

白名单 Cookie

注意

此选项仅适用于配置为网站终端节点的 Amazon S3 存储桶。

如果您在转发 Cookie 列表中选择白名单,则在白名单 Cookie 字段中输入您希望 CloudFront 为该缓存行为转发到源服务器的 Cookie 名称。在新一行中输入每个 Cookie 的名称。

可以使用以下通配符来指定 Cookie 名称:

  • * 匹配 Cookie 名称中的 0 个或多个字符

  • ? 与 Cookie 名称中的 1 个字符完全匹配

例如,假设对象的查看器请求包含一个带以下名称的 Cookie:

userid_member-number

其中,您的每个用户均具有一个唯一的 member-number 值。您希望 CloudFront 为每个成员缓存对象的单独版本。您可以通过将所有 Cookie 转发到源来完成该操作,但查看器请求包含一些您希望 CloudFront 不要缓存的 Cookie。或者,您也可以指定以下值以作为 Cookie 名称,这会导致 CloudFront 将所有以 userid_ 开头的 Cookie 转发到源:

userid_*

有关您可以为每个缓存行为列入白名单的当前最大 cookie 名称数,或者要请求提高配额(以前称为限制),请参阅有关白名单 Cookie 的配额(仅限 Web 分配)

查询字符串转发和缓存

CloudFront 可根据查询字符串参数的值来缓存不同版本的内容。请选择以下任一选项:

None (Improves Caching)

如果无论查询字符串参数的值如何,源都返回相同版本的对象,请选择该选项。这增加了 CloudFront 可从缓存满足请求的可能性,这提高了性能并降低了源的负载。

Forward all, cache based on whitelist

如果源服务器根据一个或多个查询字符串参数返回不同版本的对象,请选择该选项。然后,在 查询字符串白名单 字段中指定您希望 CloudFront 作为缓存基础的参数。

Forward all, cache based on all

如果源服务器为所有查询字符串参数返回不同版本的对象,请选择该选项。

有关基于查询字符串参数进行缓存的更多信息 (包括如何改进性能),请参阅根据查询字符串参数缓存内容

查询字符串白名单

如果您为查询字符串转发和缓存选择全部转发,基于白名单进行缓存,请指定您希望 CloudFront 作为缓存基础的查询字符串参数。

平滑流

如果您希望以 Microsoft 平滑流格式分发媒体文件并且您没有 IIS 服务器,则选择

如果您有 Microsoft IIS 服务器并且要将其用作以 Microsoft 平滑流格式分发媒体文件的源,或者您不打算分发平滑流媒体文件,则选择 No (否)

注意

如果您指定 Yes (是),您仍可以使用该缓存行为分配其他内容,只要该内容与 Path Pattern (路径模式) 值匹配。

有关更多信息,请参阅 为 Microsoft 平滑流配置点播视频

限制查看器访问(使用签名 URL 或签名 Cookie)

如果您希望与该缓存行为的 PathPattern 匹配的对象请求使用公共 URL,请选择 No

如果您希望与该缓存行为的 PathPattern 匹配的对象请求使用签名 URL,请选择 Yes。然后指定您希望用于创建签名 URL 的 AWS 账户;这些账户被称为可信签署人。

有关可信签署人的更多信息,请参阅 指定可以创建签名 URL 和签名 Cookie 的签署人

可信签署人

选择您希望用作该缓存行为的可信签署人的 AWS 账号:

  • 本身:使用您目前登录 AWS 管理控制台的账户作为可信签署人。如果您目前作为 IAM 用户登录,添加相关的 AWS 账户作为可信签署人。

  • 指定账户:在“AWS Account Numbers”字段输入可信签署人的账号。

要创建可信签署人 URL,AWS 账户必须至少具有一个有效的 CloudFront 密钥对。

重要

如果您更新您已经用于分发内容的分配,则在准备开始产生对象的签名 URL 时只添加可信签署人。在您把可信签署人添加到分配为后,用户必须使用签名 URL 访问与该缓存行为 PathPattern 匹配的对象。

AWS 账号

除当前账户之外或替代当前账户,如果要使用 AWS 账户创建签名 URL,请在该字段每一行输入一个 AWS 账户。请注意以下几点:

  • 您指定的账户必须至少具有一个有效的 CloudFront 密钥对。有关更多信息,请参阅 为签署人创建密钥对

  • 您不能为 IAM 用户创建 CloudFront 密钥对,因此,不能使用 IAM 用户作为可信签署人。

  • 有关如何获取账户的 AWS 账号的信息,请参阅《Amazon Web Services 一般参考》中的如何获取安全凭证?

  • 如果您输入当前账户的账户号码,CloudFront 则自动选中本人复选框,并从 AWS 账号列表中删除账户号码。

自动压缩对象

如果您希望 CloudFront 在查看器支持压缩内容时自动压缩某些类型的文件,请选择。当 CloudFront 压缩内容时,由于文件更小,因此下载速度更快,并会更快地为用户呈现网页。有关更多信息,请参阅提供压缩文件

CloudFront 事件

您可以选择在以下一个或多个 CloudFront 事件发生时,运行 Lambda 函数:

  • 在 CloudFront 收到查看器的请求时 (查看器请求)

  • 在 CloudFront 将请求转发到源之前 (源请求)

  • 在 CloudFront 收到来自源的响应时 (源响应)

  • 在 CloudFront 将响应返回到查看器之前 (查看器响应)

有关更多信息,请参阅 如何决定要将哪个 CloudFront 事件用于触发 Lambda 函数

Lambda 函数的 ARN

指定要为其添加触发器的 Lambda 函数的 Amazon 资源名称 (ARN)。要了解如何获取函数的 ARN,请参阅使用 CloudFront 控制台添加触发器过程的步骤 1。

分配设置

以下值适用于整个分配。

价格级别

选择与您想为 CloudFront 服务支付的最高价对应的价格级别。默认情况下,CloudFront 从所有 CloudFront 区域的边缘站点提供您的对象。

有关价格级别以及您选择的价格级别如何影响分配的 CloudFront 性能的更多信息,请参阅选择 CloudFront 分配的价格级别。有关 CloudFront 定价的信息,包括如何将价格级别映射到 CloudFront 区域,请参阅 Amazon CloudFront 定价

AWS WAF Web ACL

如果要使用 AWS WAF 根据您指定的条件来允许或阻止请求,请选择要与该分配关联的 Web ACL。

AWS WAF 是一种 Web 应用程序防火墙,可让您监视转发到 CloudFront 的 HTTP 和 HTTPS 请求,并控制对您的内容的访问。根据指定的条件(如请求源自的 IP 地址或查询字符串的值),CloudFront 会使用所请求的内容或使用 HTTP 状态代码 403(禁止)来响应请求。还可以将 CloudFront 配置为在请求被阻止时返回自定义错误页面。有关 AWS WAF 的更多信息,请参阅 AWS WAF 开发人员指南

备用域名 (CNAME)

可选。指定您想用于对象 URL 的一个或多个域名,代替您创建分配时 CloudFront 指派的域名。您必须拥有该域名,或有权使用它,您可以通过添加 SSL/TLS 证书来验证这一点。

例如,如果您希望对象的 URL:

/images/image.jpg

像这样:

http://www.example.com/images/image.jpg

而不是这样:

http://d111111abcdef8.cloudfront.net/images/image.jpg

www.example.com 添加 CNAME。

重要

如果将 www.example.com 的 CNAME 添加到您的分配中,还必须执行以下操作:

  • 创建(或更新)一条 CNAME 记录,让您的 DNS 服务将对 www.example.com 的查询路由到 d111111abcdef8.cloudfront.net

  • 将来自可信证书颁发机构 (CA) 的一个证书添加到 CloudFront,该证书中涵盖您添加到分配中的域名 (CNAME),以来验证您是否被授权使用该域名。

您必须具有权限才能创建 CNAME 记录,并指定域的 DNS 服务提供商。通常,这意味着您拥有该域,或者您正在为域所有者开发应用程序。

有关您可以添加到分配的当前最大备用域名数,或要请求提高配额(以前称为限制),请参阅Web 分配的一般配额

更多有关别名记录的信息,请参阅 通过添加备用域名 (CNAME) 将自定义 URL 用于文件。有关 CloudFront URL 的更多信息,请参阅在 CloudFront 中自定义文件的 URL 格式

SSL 证书

如果指定一个备用域名来与您的分配结合使用,请选择自定义 SSL 证书,然后,要想验证您是否获得授权使用该备用域名,请选择一个涵盖它的证书。如果您希望查看器使用 HTTPS 访问您的对象,请选择支持此操作的设置。

注意

在您可以指定自定义 SSL 证书之前,您必须指定一个有效的备用域名。有关更多信息,请参阅 使用备用域名的要求使用备用域名和 HTTPS

  • 默认 CloudFront 证书 (*.cloudfront.net) – 如果要在您的对象的 URL 中使用 CloudFront 域名,如 https://d111111abcdef8.cloudfront.net/image1.jpg,请选择该选项。

  • 自定义 SSL 证书 – 如果要将对象的 URL 中的您自己的域名作为备用域名,例如 https://example.com/image1.jpg,则选择该选项。然后,选择一个涵盖该备用域名的证书。证书列表中可以包括以下任一证书:

    • AWS Certificate Manager 提供的证书

    • 您从第三方证书颁发机构购买并上传到 ACM 的证书

    • 您从第三方证书颁发机构购买并上传到 ACM 证书存储的证书

    如果选择此设置,则我们建议您只在对象 URL 中使用一个备用域名 (https://example.com/logo.jpg)。如果您使用 CloudFront 分配域名 (https://d111111abcdef8.cloudfront.net/logo.jpg),而客户端使用较旧的不支持 SNI 得查看器,则查看器得响应取决于您为支持的客户端选择的值:

    • 所有客户端:当 CloudFront 域名与 SSL/TLS 证书中的域名不匹配时,查看器将显示警告。

    • 仅支持服务器名称指示 (SNI) 的客户端:CloudFront 将删除与查看器的连接而不返回对象。

自定义 SSL 客户端支持

如果为分配指定了一个或多个备用域名和自定义 SSL 证书,请选择您希望 CloudFront 如何处理 HTTPS 请求:

  • Clients that Support Server Name Indication (SNI) - (Recommended) (支持服务器名称指示 (SNI) 的客户端 - (推荐)) – 使用此设置,几乎所有新式 Web 浏览器和客户端都可以连接到分配,因为它们支持 SNI。但是,某些查看者可能会使用较旧的 Web 浏览器或不支持 SNI 的客户端,这意味着他们无法连接到分配。

    要使用 CloudFront API 应用此设置,请在 SSLSupportMethod 字段中指定 sni-only。在 AWS CloudFormation 中,字段被命名 SslSupportMethod (请注意不同的大小写)。

  • Legacy Clients Support (旧版客户端支持) – 使用此设置,旧版 Web 浏览器和不支持 SNI 的客户端可以连接到分配。但是,此设置会产生额外的月度费用。有关确切的价格,请转到 Amazon CloudFront 定价页面,然后在此页中搜索专用 IP 自定义 SSL

    要使用 CloudFront API 应用此设置,请在 SSLSupportMethod 字段中指定 vip。在 AWS CloudFormation 中,字段被命名 SslSupportMethod (请注意不同的大小写)。

有关更多信息,请参阅 选择 CloudFront 处理 HTTPS 请求的方式

安全策略

指定希望 CloudFront 用于与查看器(客户端)建立 HTTPS 连接的安全策略。安全策略确定两个设置:

  • CloudFront 与查看器通信时使用的最低 SSL/TLS 协议。

  • CloudFront 可用来加密其返回给查看器的内容的密码

有关安全策略(包括每个策略包含的协议和密码)的更多信息,请参阅查看器和 CloudFront 之间支持的协议和密码

可用的安全策略取决于您为 SSL Certificate (SSL 证书)Custom SSL Client Support (自定义 SSL 客户端支持) 指定的值(称为 CloudFront API 中的 CloudFrontDefaultCertificateSSLSupportMethod):

  • SSL 证书默认 CloudFront 证书 (*.cloudfront.net) 时(当 API 中 CloudFrontDefaultCertificatetrue 时),CloudFront 将安全策略自动设置为 TLSv1。

  • SSL Certificate (SSL 证书)Custom SSL Certificate (example.com) (自定义 SSL 证书 (example.com)) 并且 Custom SSL Client Support (自定义 SSL 客户端支持)Clients that Support Server Name Indication (SNI) - (Recommended) (支持服务器名称指示 (SNI) 的客户端 - (推荐)) 时(当 API 中 CloudFrontDefaultCertificatefalse 并且 SSLSupportMethodsni-only 时),您可以从以下安全策略中进行选择:

    • TLSv1.2_2019

    • TLSv1.2_2018

    • TLSv1.1_2016

    • TLSv1_2016

    • TLSv1

  • SSL Certificate (SSL 证书)Custom SSL Certificate (example.com) (自定义 SSL 证书 (example.com)) 并且 Custom SSL Client Support (自定义 SSL 客户端支持)Legacy Clients Support (旧版客户端支持) 时(当 API 中 CloudFrontDefaultCertificatefalse 并且 SSLSupportMethodvip 时),您可以从以下安全策略中进行选择:

    • TLSv1

    • SSLv3

    在此配置中,TLSv1.2_2019、TLSv1.2_2018、TLSv1.1_2016 和 TLSv1_2016 安全策略在 CloudFront 控制台或 API 中不可用。如果要使用这些安全策略之一,您可以选择以下选项:

    • 评估您的分配是否需要具有专用 IP 地址的旧版客户端支持。如果查看器支持服务器名称指示 (SNI),我们建议您将分配的 Custom SSL Client Support (自定义 SSL 客户端支持) 设置更新为 Clients that Support Server Name Indication (SNI) (支持服务器名称指示 (SNI) 的客户端)(在 API 中将 SSLSupportMethod 设置为 sni-only)。这使您能够使用任何可用的 TLS 安全策略,并且还可以降低您的 CloudFront 费用。

    • 如果您必须保留具有专用 IP 地址的旧版客户端支持,则可以通过在 AWS Support 中心创建案例来请求其他 TLS 安全策略(TLSv1.2_2019、TLSv1.2_2018、TLSv1.1_2016 或 TLSv1_2016)之一。

      注意

      在联系 AWS Support 以请求此更改之前,请考虑以下事项:

      • 当您将其中一个安全策略(TLSv1.2_2019、TLSv1.2_2018、TLSv1.1_2016 或 TLSv1_2016)添加到旧版客户端支持分配时,安全策略将应用于 AWS 账户中所有 旧版客户端支持分配的所有 非 SNI 查看器请求。但是,当查看器将 SNI 请求发送到具有旧版客户端支持的分配时,该分配的安全策略适用。要确保将您所需的安全策略应用于发送到 AWS 账户中所有 旧版客户端支持分配的所有 查看器请求,请将所需安全策略分别添加到每个分配。

      • 根据定义,新安全策略不支持与旧安全策略相同的密码和协议。例如,如果您选择将分配的安全策略从 TLSV1 升级到 TLSV1.1_2016,则该分配将不再支持 DES-CBC3-SHA 密码。有关每个安全策略支持的密码和协议的更多信息,请参阅查看器和 CloudFront 之间支持的协议和密码

支持的 HTTP 版本

选择您希望分配在查看器与 CloudFront 通信时支持的 HTTP 版本。要使查看器和 CloudFront 使用 HTTP/2,查看器必须支持 TLS 1.2 或更高版本,并且必须支持服务器名称标识 (SNI)。

一般情况下,将 CloudFront 配置为使用 HTTP/2 与查看器进行通信可减少延迟。您可以针对 HTTP/2 进行优化以提高性能。有关更多信息,请在 Internet 上搜索“http/2 optimization”。

默认根对象

可选。当查看器请求分发的根 URL (http://www.example.com/) 而不是分发中的对象 (http://www.example.com/product-description.html) 时,您希望 CloudFront 从您的源(例如,index.html)中请求的对象。指定一个默认根对象,以避免公开分配的内容。

名称的长度上限是 255 个字符。该名称可包含以下任何字符:

  • A-Z, a-z

  • 0-9

  • _ - . * $ / ~ " '

  • &,作为 & 传递和返回

当您指定默认根对象时,请仅输入对象名称,例如 index.html。不要在对象名称前添加 /

有关更多信息,请参阅 指定默认根对象

日志记录

您是否希望 CloudFront 记录对象的每个请求信息并将日志文件存储在 Amazon S3 存储桶中。您可以随时启用或禁用日志记录。启用日志记录无额外的费用,但存储和访问 Amazon S3 存储桶中的文件会产生常规的 Amazon S3 费用。您可以随时删除日志文件。有关 CloudFront 访问日志的更多信息,请参阅配置和使用标准日志(访问日志)

日志存储桶

如果您为日志记录选择开启,则为您希望 CloudFront 存储访问日志的 Amazon S3 存储桶,例如,myLogs-DOC-EXAMPLE-BUCKET.s3.amazonaws.com

注意

请勿在以下任何区域中选择 Amazon S3 存储桶,因为 CloudFront 不会将访问日志传送到这些区域中的存储桶:

  • 非洲(开普敦)af-south-1

  • 亚太地区(香港)ap-east-1

  • 欧洲(米兰)eu-south-1

  • 中东(巴林)me-south-1

Amazon S3 控制台显示存储桶的区域。

如果您启用日志记录,CloudFront 记录有关对象每个最终用户请求的信息并将文件存储在指定的 Amazon S3 存储桶中。您可以随时启用或禁用日志记录。有关 CloudFront 访问日志的更多信息,请参阅配置和使用标准日志(访问日志)

注意

您必须拥有必需的权限才能获取和更新 Amazon S3 存储桶 ACL,并且存储桶的 S3 ACL 必须向您授予 FULL_CONTROL。这允许 CloudFront 提供 awsdatafeeds 账户权限,以将日志文件保存在存储桶中。有关更多信息,请参阅配置标准日志记录和访问您的日志文件所需的权限

日志前缀

可选。如果您为日志记录选择开启,请指定您希望 CloudFront 为此分配的访问日志文件名添加前缀的字符串(如有),例如 exampleprefix/。尾随斜杠 (/) 是可选的,但建议简化浏览您的日志文件。有关 CloudFront 访问日志的更多信息,请参阅配置和使用标准日志(访问日志)

Cookie 日志记录

如果希望 CloudFront 将 cookie 包含在访问日志中,请选择开启。如果您选择将 cookie 包含在日志中,CloudFront 则记录所有 cookie,而不管您如何配置此分配的缓存行为:转发所有 cookie,不转发 cookie,或将指定的 cookie 列表转发到源。

Amazon S3 不处理 cookie,因此除非您的分配也包括 Amazon EC2 或其他自定义源,否则我们建议您为 Cookie 日志记录的值选择关闭

有关 cookie 的更多信息,请转至 根据 Cookie 缓存内容

启用 IPv6

IPv6 是新版本的 IP 协议。它使用更大的地址空间,最终将取代 IPv4。CloudFront 始终响应 IPv4 请求。如果您希望 CloudFront 响应来自 IPv4 IP 地址(例如 192.0.2.44)的请求和来自 IPv6 地址(例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334)的请求,请选择启用 IPv6

通常,如果您有 IPv6 网络上的用户需要访问您的内容,则应启用 IPv6。不过,如果您使用签名 URL 或签名的 Cookie 来限制对您的内容的访问,并且您使用自定义策略 (该策略包含 IpAddress 参数以限制可访问您的内容的 IP 地址),请不要启用 IPv6。如果您希望按 IP 地址限制对某些内容的访问,而不限制对其他内容的访问 (或限制访问,但不按 IP 地址实施限制),则您可创建两个分配。有关使用自定义策略创建签名 URL 的信息,请参阅使用自定义政策创建签名 URL。有关使用自定义策略创建签名 Cookie 的信息,请参阅使用自定义策略设置签名 Cookie

如果您使用 Route 53 别名资源记录集将流量路由到您的 CloudFront 分配,在满足以下两个条件时,您需要创建另一个别名资源记录集:

  • 您为分发启用 IPv6

  • 您在对象的 URL 中使用备用域名

有关更多信息,请参阅《Amazon Route 53 开发人员指南》中的使用域名将流量路由到 Amazon CloudFront Web 分配

如果您已使用 Route 53 或其他 DNS 服务创建 CNAME 资源记录集,则无需进行任何更改。CNAME 记录会将流量路由到您的分配,无论查看器请求的 IP 地址格式如何。

如果您启用 IPv6 和 CloudFront 访问日志,c-ip 列将包含 IPv4 和 IPv6 格式的值。有关更多信息,请参阅配置和使用标准日志(访问日志)

注意

为了维护客户的高可用性,CloudFront 将使用 IPv4 响应查看器请求(如果我们的数据表明 IPv4 将提供更佳的用户体验)。要查明 CloudFront 通过 IPv6 提供的请求的百分比,请为分配启用 CloudFront 日志记录并解析 c-ip 列,该列包含已发出请求的查看器的 IP 地址。此百分比将随时间增大,但仍只占据流量的一小部分,因为 IPv6 并未在全球范围内得到所有查看器网络的支持。一些查看器网络具有很好的 IPv6 支持,但其他查看器网络根本不支持 IPv6。(查看器网络类似于您的家庭 Internet 或无线运营商。)

有关我们对 IPv6 的支持的更多信息,请参阅 CloudFront 常见问题。有关启用访问日志的信息,请参阅字段 日志记录日志存储桶日志前缀

注释

可选。在创建分配时,您最多可以包含 128 字符的注释。您可以随时更新注释。

分配状态

表明您是否希望分配在一经部署时就被启用或禁用:

  • 已启用是指,只要分配一经全面部署,您就可部署使用分配域名的链接,并且用户可检索内容。无论何时启用分配,CloudFront 将接受并处理任何最终用户使用与该分配有关的域名对内容的请求。

    当您创建、修改或删除 CloudFront 分配时,需要一定的时间才能将您所做的更改传播到 CloudFront 数据库。即刻发起的对分配相关信息的请求可能不会显示出该更改。传播通常在几分钟内完成,但高系统负载或网络分区可能会延长该时间。

  • 已禁用是指,即使分配可能已经部署且准备好使用,用户也不能使用它。无论何时禁用分配,CloudFront 都不接受任何最终用户使用与该分配有关的域名对内容的请求。除非您将分配从禁用切换到启用(通过更新分配的配置),否则任何人都不能使用它。

您可根据您想要的频率在禁用和启用之间转换分配。遵照更新分配配置的过程。有关更多信息,请参阅 更新分配

自定义错误页面和错误缓存

您可以让 CloudFront 在您的 Amazon S3 或自定义源向 CloudFront 返回 HTTP 4xx 或 5xx 状态代码时向查看者返回一个对象(例如 HTML 文件)。您还可以指定从您的源发出的错误响应或自定义错误页面缓存在 CloudFront 边缘缓存中进行缓存的时长。有关更多信息,请参阅 为特定 HTTP 状态代码创建自定义错误页面

注意

以下值不包含在“Create Distribution (创建分配)”向导中,所以您只能在更新分配时配置自定义错误页面。

HTTP 错误代码

您希望 CloudFront 返回自定义错误页面时所对应的 HTTP 状态代码。您可以将 CloudFront 配置为返回 CloudFront 缓存的无、部分或全部 HTTP 状态代码的自定义错误页面。

错误缓存最小 TTL(秒)

您希望 CloudFront 缓存从源服务器发出的错误响应的最短时间。

响应页面路径

在源返回您为错误代码指定的 HTTP 状态代码(如 403)时,您希望 CloudFront 返回到查看器的自定义错误页面的路径(如 /4xx-errors/403-forbidden.html)。如果您希望将您的对象和自定义错误页面存储在不同的位置,您的分配必须包含满足以下条件时的缓存行为:

  • Path Pattern 的值与您的自定义错误消息的路径匹配。例如,假设您在 Amazon S3 存储桶中名为 /4xx-errors 的目录下为 4xx 错误保存了自定义错误页面。您的分配必须包含缓存行为,其路径模式将对自定义错误页面的请求路由至该位置,例如 /4xx-errors/*

  • 值指定包含您的自定义错误页面的源的源 ID 值。

HTTP 响应代码

您希望 CloudFront 将其与自定义错误页面一起返回给查看器的 HTTP 状态代码。

限制

如果您需要阻止选定国家/地区的用户访问您的内容,可以将您的 CloudFront 分配配置为允许指定国家/地区白名单中的用户访问您的内容或不允许指定国家/地区黑名单中的用户访问您的内容。有关更多信息,请参阅 限制您的内容的地理分配

注意

以下值不包含在“Create Distribution (创建分配)”向导中,所以您只能在更新分配时配置地理限制。

启用地理限制

您是否想要阻止选定国家/地区的用户访问您的内容。配置地理限制不收取额外费用。

限制类型

您希望如何指定可访问您的内容的用户所在的国家/地区:

  • 白名单:Countries (国家/地区) 列表包含您希望 访问您的内容的用户所在的所有国家/地区。

  • 黑名单:Countries (国家/地区) 列表包含您 希望访问您的内容的用户所在的所有国家/地区。

国家/地区

您想要添加到白名单或黑名单中的国家/地区。要添加国家/地区,请在左侧列表中选择它,然后选择 Add。请注意以下几点:

  • 要添加多个连续的国家/地区,请选择第一个国家/地区,并按住 Shift 键选择最后一个国家/地区,然后选择 Add

  • 要添加多个不连续的国家/地区,请选择第一个国家/地区,并按住 Ctrl 键选择剩余的国家/地区,然后选择 Add

  • 要在左侧列表中查找国家/地区,请输入国家/地区全名的前几个字符。

  • 如果您想要使用 CloudFront API 创建或更新分配,需要输入每个国家/地区名称之前的两个字母的代码。我们使用国际标准化组织分配的国家/地区代码。要获取按代码和国家/地区名称分类的易于使用的列表,请参阅 Wikipedia 条目 ISO 3166-1 Alpha2