分配设置参考
当您使用 CloudFront 控制台
有关使用 CloudFront 控制台创建或更新分配的更多信息,请参阅创建分配或更新分配。
源设置
当您使用 CloudFront 控制台创建或更新分配时,您可提供有关一个或多个位置(称为源)的信息,它们是您存储原始版 Web 内容的地方。CloudFront 从您的源获取 Web 内容,并通过遍布全球的边缘服务器网络将其提供给查看器。
有关您可以为分配创建的源的当前最大数量或要请求提高限额,请参阅分配的一般配额。
如果您想删除源,您首先必须编辑或删除与该源有关的缓存行为。
重要
如果您删除源,请确认该源先前提供的文件在另一源中可用,且您的缓存行为将这些文件的请求路由到新的源。
当您创建或更新分配时,您可为每个源指定以下值。
主题
源域
源域是资源的 DNS 域名,CloudFront 将在该资源(例如 Amazon S3 存储桶或 HTTP 服务器)中为源获取对象。例如:
-
Amazon S3 存储桶 –
amzn-s3-demo-bucket
.s3.us-west-2
.amazonaws.com注意
如果您最近创建了 S3 存储桶,则 CloudFront 分配最长可能需要 24 小时才能返回
HTTP 307 Temporary Redirect
响应。S3 存储桶名称最长可能需要 24 小时才能传播到所有AWS区域。在传播完成后,分配将自动停止发送这些重定向响应;您无需执行任何操作。有关更多信息,请参阅为什么我会从 Amazon S3 获得 HTTP 307 临时重定向响应?和临时请求重定向。 -
配置为网站的 Amazon S3 存储桶 –
amzn-s3-demo-bucket
.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 服务器 –
www.example.com
在源域字段中选择域名或键入域名。必须手动输入来自选择加入区域的资源。域名不区分大小写。源域必须具有可公开解析的 DNS 名称,该名称可通过互联网将请求从客户端路由到目标。
如果将 CloudFront 配置为通过 HTTPS 连接到源,则证书中的其中一个域名必须与您为源域名指定的域名匹配。如果没有任何域名匹配,CloudFront 会向查看器返回 HTTP 状态代码 502(无效网关)。有关更多信息,请参阅CloudFront 分配和证书中的域名 和CloudFront 与自定义源服务器之间的 SSL/TLS 协商失败。
注意
如果使用将查看器主机标头转发到源的源请求策略,则源必须使用与查看器主机标头匹配的证书进行响应。有关更多信息,请参阅 添加 CloudFront 请求标头。
如果您的源是 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 Simple Storage Service 源的访问。
重要
如果源是 Amazon S3 存储桶,存储桶名称必须符合 DNS 命名要求。有关更多信息,请转至《Amazon Simple Storage Service 用户指南》中的桶限制。
当您更改源的源域值时,CloudFront 立即开始复制对 CloudFront 边缘站点的更改。在特定边缘站点中的分配配置得到更新之前,CloudFront 会继续将请求转发到先前的源。该边缘站点中的分配配置一经更新,CloudFront 就开始将请求转发到新的源。
更改源并不要求 CloudFront 用新源中的对象重新填充边缘缓存。只要应用程序中的查看器请求未经更改,CloudFront 就会继续提供边缘缓存中已有的对象,直至每个对象的 TTL 过期或直至很少被请求的对象被逐出。
协议(仅自定义源)
注意
这仅适用于自定义源。
您希望 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/TLS 证书中的域名之一必须与为源域指定的域名匹配。否则,CloudFront 将使用 HTTP 状态代码 502(无效网关)响应查看器请求,而不是返回请求的对象。有关更多信息,请参阅 在 CloudFront 中使用 SSL/TLS 证书的要求。
HTTP 端口
注意
这仅适用于自定义源。
(可选)您可以指定自定义源进行侦听的 HTTP 端口。有效值包括端口 80、443 和 1024 至 65535。默认值为端口 80。
重要
当源是 Amazon S3 静态网站托管端点时,端口 80 是默认设置,因为 Amazon S3 仅对静态网站托管端点支持端口 80。CloudFront 控制台不支持更改 Amazon S3 静态网站托管终端的此设置。
HTTPS 端口
注意
这仅适用于自定义源。
(可选)您可以指定自定义源进行侦听的 HTTPS 端口。有效值包括端口 80、443 和 1024 至 65535。默认值为端口 443。当协议设置为仅 HTTP 时,不能为 HTTPS 端口指定值。
最低限度源 SSL 协议
注意
这仅适用于自定义源。
选择 CloudFront 在建立与您的源的 HTTPS 连接时可以使用的最低限度 TLS/SSL 协议。降低 TLS 协议级别会降低安全性,因此建议您选择您的源支持的最新 TLS 协议。当协议设置为仅 HTTP 时,不能为最低限度源 SSL 协议指定值。
如果您使用 CloudFront API 设置 CloudFront 要使用的 TLS/SSL 协议,则无法设置最低限度协议。而是要指定 CloudFront 可以用于您的源的所有 TLS/SSL 协议。有关更多信息,请参阅《Amazon CloudFront API 参考》中的 OriginSslProtocols。
源路径
如果您希望 CloudFront 从源的目录中请求内容,请以斜杠 (/) 开头输入目录路径。CloudFront 会将目录路径附加到源域的值之后,例如 cf-origin.example.com/production/images
。请不要在路径的末尾添加斜杠 (/)。
例如,假设您已为分配指定以下值:
-
源域 – 名为
amzn-s3-demo-bucket
的 Amazon S3 存储桶 -
源路径 –
/production
-
备用域名 (CNAME)–
example.com
当用户在浏览器中输入 example.com/index.html
时,CloudFront 会将请求发送到 amzn-s3-demo-bucket/production/index.html
的 Amazon S3。
当用户在浏览器中输入 example.com/acme/index.html
时,CloudFront 会将请求发送到 amzn-s3-demo-bucket/production/acme/index.html
的 Amazon S3。
名称
名称是唯一标识此分配中的这个源的字符串。如果您创建默认缓存行为之外的缓存行为,可以使用在此处指定的名称,以标识您希望 CloudFront 在请求与该缓存行为的路径模式匹配时将请求路由到的源。
源访问(仅限 Amazon S3 源)
注意
这仅适用于 Amazon S3 存储桶源(不使用 S3 静态网站端点的那些源)。
如果您想将对 Amazon S3 存储桶源的访问限制为仅限特定的 CloudFront 分配,请选择来源访问控制设置(推荐)。
如果 Amazon S3 存储桶源可公开访问,请选择公有。
有关更多信息,请参阅 限制对 Amazon Simple Storage Service 源的访问。
有关如何要求用户仅使用 CloudFront URL 访问自定义源上的对象的信息,请参阅在自定义源上限制对文件的访问。
添加自定义标头
如果您希望 CloudFront 在将请求发送到源时添加自定义标头,请指定标头名称及其值。有关更多信息,请参阅 向源请求添加自定义标头。
有关可添加的自定义标头的当前最大数量、自定义标头名称和值的最大长度,以及所有标头名称和值的最大总长度,请参阅配额。
启用 Origin Shield
选择是以启用 CloudFront Origin Shield。有关 Origin Shield 的更多信息,请参阅使用 Amazon CloudFront Origin Shield。
连接尝试次数
您可以设置 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 从收到来自源的一个响应数据包到收到下一个数据包之间等待的时间长度(以秒为单位)。
提示
如果您由于查看器遇到了 HTTP 504 状态代码错误而希望增加超时值,请考虑探索其他方法来在更改超时值之前消除这些错误。请参阅 HTTP 504 状态代码 (Gateway Timeout) 中的故障排除建议。
CloudFront 行为取决于查看器请求中的 HTTP 方法:
-
GET
和HEAD
请求 – 如果源在响应超时的持续时间内没有响应或停止响应,则 CloudFront 中断连接。CloudFront 根据 连接尝试次数 的值再次尝试进行连接。 -
DELETE
、OPTIONS
、PATCH
、PUT
和POST
请求 – 如果源在读取超时期间未响应,CloudFront 将中断连接并且不会再次尝试联系源。如有必要,客户端可以重新提交请求。
源保持连接超时(仅自定义源)
保持连接超时是 CloudFront 在获取最后一个响应数据包后,尝试保持与自定义源的连接的时间长度(以秒为单位)。保持持久性连接可节省重新建立 TCP 连接和执行后续请求的另一个 TLS 握手所需的时间。增加保持连接超时有助于改善分配的每连接请求指标。
注意
为了让源保持连接超时值生效,源必须配置为允许持久性连接。
响应和保持连接超时限额
注意
这仅适用于自定义源。
-
响应超时的默认值为 30 秒。
-
保持连接超时的默认值为 5 秒。
-
对于任一限额,您可以指定 1 到 60 秒内的值。要申请提升限额,请在 AWS Support Center Console 中创建案例
。
在为您的 AWS 账户请求延长超时后,请更新分配源,使其具有您所需的响应超时和保持连接超时值。为账户提升限额并不会自动更新您的源。例如,如果您使用 Lambda@Edge 函数将保持连接超时设置为 90 秒,则您的源的保持连接超时值必须为 90 秒或更长时间。否则,您的 Lambda@Edge 函数可能会无法执行。
有关分配限额的更多信息,请参阅分配的一般配额。
缓存行为设置
通过设置缓存行为,您可以为您网站上文件的特定 URL 路径模式配置各种 CloudFront 功能。例如,一个缓存行为可能适用于您用作 CloudFront 源服务器的 Web 服务器上 images
目录中所有的 .jpg
文件。您可为每个缓存行为配置的功能包括:
-
路径模式
-
如果您已经为 CloudFront 分配配置了多个源,则为您希望 CloudFront 将您的请求转发到的源
-
是否将查询字符串转发到源
-
访问指定文件是否需要签名的 URL
-
是否要求用户使用 HTTPS 访问这些文件
-
这些文件保留在 CloudFront 缓存中的最短时间,不管您的源添加到文件中的任何
Cache-Control
标头的值
当您创建新分配时,您为默认缓存行为指定设置,这将自动把所有请求转发到您创建分配时指定的源中。在创建分配后,您可创建其他缓存行为,该行为定义 CloudFront 在其接受与路径模式相匹配的对象请求时如何响应,例如 *.jpg
。如果您创建其他缓存行为,默认缓存行为始终是最后一个被处理的。其他缓存行为以他们在 CloudFront 控制台中所列的顺序进行处理,或者,如果您使用 CloudFront API,以他们在分配 DistributionConfig
元素中所列的顺序进行处理。有关更多信息,请参阅 路径模式。
当您创建缓存行为是,可指定您希望 CloudFront 从中获取对象的一个源。因此,如果您希望 CloudFront 分配所有源的对象,必须至少具有与您所拥有的源一样多的缓存行为(包括默认缓存行为)。例如,如果您有两个源但只有一个默认缓存行为,则默认缓存行为将导致 CloudFront 从其中一个源获取对象,但永远不会使用另一个源。
有关您可以添加到分配的当前最大缓存行为数,或要请求提高配额(以前称为限制),请参阅分配的一般配额。
主题
路径模式
路径模式(例如,images/*.jpg
)指定您希望该缓存行为所适用的请求。CloudFront 收到查看器请求时,会按照缓存行为在分配中列出的顺序,将请求路径与路径模式进行比较。第一个匹配者决定了哪个缓存行为适用于该请求。例如,假设您具有以下三个路径模式的三个缓存行为,顺序如下:
-
images/*.jpg
-
images/*
-
*.gif
注意
可以选择在路径模式的开头包含斜杠 (/),例如 /images/*.jpg
。无论开头是否有 /,CloudFront 行为都相同。如果您未在路径的开头指定 /,则会自动隐含此字符;无论开头是否有 /,CloudFront 都会以相同方式处理该路径。例如,CloudFront 将 /*product.jpg
视为与 *product.jpg
相同
文件 images/sample.gif
的请求不符合第一个路径模式,因此,相关的缓存行为不适用于该请求。文件符合第二路径模式,因此,与第二个路径模式有关的缓存行为适用,即使该请求与第三个路径模式也匹配。
注意
在创建新的分配时,默认缓存行为的路径模式的值将设置为 *(所有文件)且无法更改。此值导致 CloudFront 将您对象的所有请求转发到您在 源域 字段中指定的源。如果对象的请求与任何其他缓存行为的路径模式都不匹配,CloudFront 将应用您在默认缓存行为中指定的行为。
重要
请谨慎定义路径模式及其顺序,否则您可能会向用户提供非预期的内容访问权限。例如,假设请求匹配两个缓存行为的路径模式。第一个缓存行为不要求签名 URL,而第二个缓存行为要求签名 URL。用户无需使用签名 URL 即可访问对象,因为 CloudFront 处理与第一个匹配有关的缓存行为。
如果您正在使用 MediaPackage 通道,则必须为您为源的端点类型定义的缓存行为包含特定的路径模式。例如,对于 DASH 端点,为路径模式键入 *.mpd
。有关更多信息和具体说明,请参阅提供使用 AWS Elemental MediaPackage 格式化的实时视频。
您指定的路径适用于指定目录以及该指定目录下所有子目录中所有文件的请求。在评估路径模式时,CloudFront 不会考虑查询字符串或 Cookie。例如,如果 images
目录包含 product1
和 product2
子目录,此路径模式 images/*.jpg
适用于 images
、images/product1
和 images/product2
目录中任何 .jpg 文件的请求。如果您希望将不同的缓存行为应用于 images/product1
目录中的文件而非 images
和 images/product2
目录中文件,为 images/product1
创建单独的缓存行为,并将该缓存行为移到 images
目录中缓存行为上方 (前面) 的位置。
您可在路径模式中使用以下通配符:
-
*
匹配 0 或多个字符。 -
?
精准匹配 1 个字符。
以下示例展示了通配符如何工作:
路径模式 | 与路径模式匹配的文件 |
---|---|
|
所有 .jpg 文件。 |
|
|
|
|
|
文件名以 |
|
文件扩展名以 |
路径模式的长度上限是 255 个字符。该值可包含以下任何字符:
-
A-Z, a-z
路径模式区分大小写,因此,路径模式
*.jpg
不适用于文件LOGO.JPG
。 -
0-9
-
_ - . * $ / ~ " ' @ : +
-
&,作为
&
传递和返回
路径规范化
CloudFront 对 URI 路径进行了与 RFC 3986
会对某些字符进行规范化并从路径中删除它们,例如多个斜杠(//
)或句点(..
)。这可能会更改 CloudFront 用于匹配预期缓存行为的 URL。
例 示例
您可以为缓存行为指定 /a/b*
和 /a*
路径。
-
发送
/a/b?c=1
路径的查看器将与/a/b*
缓存行为进行匹配。 -
发送
/a/b/..?c=1
路径的查看器将与/a*
缓存行为进行匹配。
要解决规范化路径的问题,您可以更新请求路径或缓存行为的路径模式。
源或源组
此设置仅在您为现有分配创建或更新缓存行为时才适用。
输入现有源或源组的值。该值标识当请求(如 https://example.com/logo.jpg)与缓存行为(如 *.jpg)或默认缓存行为 (*) 的路径模式匹配时,您希望 CloudFront 将请求路由至的源或源组。
查看器协议策略
选择您希望查看器用来访问 CloudFront 边缘站点中的内容的协议策略:
-
HTTP 和 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 将缓存对
GET
和HEAD
请求以及(可选)OPTIONS
请求的响应。对OPTIONS
请求的响应与对GET
和HEAD
请求的响应单独缓存(OPTIONS
方法包含在OPTIONS
请求的缓存键中)。CloudFront 不缓存对使用其他方法的请求的响应。
重要
如果您选择 GET, HEAD, OPTIONS 或 GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE,则可能需要限制对 Amazon S3 存储桶或自定义源的访问,以阻止用户执行您不希望他们执行的操作。以下示例说明了如何限制访问:
-
如果将 Amazon S3 作为您的分配的源:创建 CloudFront 源访问控制,以限制对您的 Amazon S3 内容的访问,并为源访问控制授予权限。例如,如果您只是 因为想要使用
PUT
而将 CloudFront 配置为接受并转发这些方法,则仍必须配置 Amazon S3 存储桶策略以适当处理DELETE
请求。有关更多信息,请参阅 限制对 Amazon Simple Storage Service 源的访问。 -
如果您使用自定义源:配置源服务器以处理所有方法。例如,您将 CloudFront 配置为接受并转发这些方法只是因为您想要使用
POST
,则仍必须配置您的源服务器以适当处理DELETE
请求。
字段级加密 Config
如果您要对特定数据字段强制实施字段级加密,请在下拉列表中选择一个字段级加密配置。
有关更多信息,请参阅 使用字段级加密帮助保护敏感数据。
缓存的 HTTP 方法
指定您是否希望 CloudFront 在查看器提交 OPTIONS
请求时缓存来自源的响应。CloudFront 始终缓存对 GET
和 HEAD
请求的响应。
基于选择的请求标头进行缓存
指定您是否要 CloudFront 基于指定标头的值缓存对象:
-
无(改进缓存) – CloudFront 不根据标头值缓存您的对象。
-
允许列表 – CloudFront 仅根据指定标头的值缓存您的对象。使用允许列表标头选择您希望 CloudFront 进行缓存时所基于的标头。
-
所有 – CloudFront 不缓存与该缓存行为关联的对象。相反,CloudFront 会将每个请求发送到源。(不建议用于 Amazon S3 源。)
无论您选择哪个选项,CloudFront 都会将特定标头转发到您的源并根据您转发的标头执行特定操作。有关 CloudFront 如何处理标头转发的更多信息,请参阅HTTP 请求标头和 CloudFront 行为(自定义源和 Amazon S3 源)。
有关如何使用请求标头在 CloudFront 中配置缓存的更多信息,请参阅根据请求标头缓存内容。
允许列表标头
此设置仅在您为基于选择的请求标头进行缓存选择允许列表时才适用。
指定您希望 CloudFront 在缓存对象时考虑的标头。从可用标头列表中选择标头,然后选择添加。要转发自定义标头,请在字段中输入标头的名称,然后选择添加自定义标头。
有关您可以为每个缓存行为列入允许列表的当前最大标头数,或者要请求提高配额(以前称为限制),请参阅标头的配额。
对象缓存
如果源服务器将 Cache-Control
标头添加到对象以控制在 CloudFront 缓存中保留对象的时间长度,并且您不希望更改 Cache-Control
值,请选择使用源缓存标头。
要指定在 CloudFront 缓存中保留对象的最短时间和最长时间(不管 Cache-Control
标头如何)以及在缺少 Cache-Control
标头时在 CloudFront 缓存中保留对象的默认时间,请选择自定义。然后,在最小 TTL、默认 TTL 和最大 TTL 字段中指定值。
有关更多信息,请参阅 管理内容保留在缓存中的时间长度(过期)。
最小 TTL
指定您希望对象在 CloudFront 缓存中保留的最短时间(以秒为单位),在此时间之后,CloudFront 会向源发送另一个请求以确定此对象是否已更新。
有关更多信息,请参阅 管理内容保留在缓存中的时间长度(过期)。
最大 TTL
指定您希望在 CloudFront 查询您的源以了解对象是否已更新之前,对象保留在 CloudFront 缓存中的最大时长(以秒为单位)。您为最大 TTL 指定的值仅在源向对象添加 HTTP 标头 (例如 Cache-Control max-age
、Cache-Control s-maxage
或 Expires
) 时适用。有关更多信息,请参阅 管理内容保留在缓存中的时间长度(过期)。
要指定 Maximum TTL 的值,您必须为 Object Caching 设置选择 Customize 选项。
最大 TTL 的默认值为 31536000 秒(一年)。如果您将最小 TTL 或默认 TTL 的值更改为一个大于 31536000 秒的值,则最大 TTL 的默认值将变为默认 TTL 的值。
默认 TTL
指定您希望对象在 CloudFront 缓存中保留的默认时间(以秒为单位),在此时间之后,CloudFront 会向您的源转发另一个请求以确定此对象是否已更新。您为默认 TTL 指定的值仅在源不向对象添加 HTTP 标头(例如 Cache-Control
max-age
、Cache-Control s-maxage
或 Expires
)时才适用。有关更多信息,请参阅 管理内容保留在缓存中的时间长度(过期)。
要指定默认 TTL 的值,您必须为对象缓存设置选择自定义选项。
默认 TTL 的默认值为 86400 秒(一天)。如果您将最小 TTL 的值更改为一个大于 86400 秒的值,则默认 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 名称数,或者要请求提高配额(以前称为限制),请参阅Cookies 的配额(旧缓存设置)。
查询字符串转发和缓存
CloudFront 可根据查询字符串参数的值来缓存不同版本的内容。请选择以下任一选项:
- 无(改进缓存)
-
如果无论查询字符串参数的值如何,源都返回相同版本的对象,请选择该选项。这增加了 CloudFront 可从缓存满足请求的可能性,这提高了性能并降低了源的负载。
- 全部转发,基于允许列表进行缓存
-
如果源服务器根据一个或多个查询字符串参数返回不同版本的对象,请选择该选项。然后,在 查询字符串允许列表 字段中指定您希望 CloudFront 作为缓存基础的参数。
- 全部转发,基于所有进行缓存
-
如果源服务器为所有查询字符串参数返回不同版本的对象,请选择该选项。
有关基于查询字符串参数进行缓存的更多信息(包括如何改进性能),请参阅根据查询字符串参数缓存内容。
查询字符串允许列表
此设置仅在您为 查询字符串转发和缓存 选择全部转发,基于允许列表进行缓存时才适用。您可以指定您希望 CloudFront 用作缓存基础的查询字符串参数。
Smooth Streaming
如果您希望以 Microsoft Smooth Streaming 格式分发媒体文件并且您没有 IIS 服务器,则选择是。
如果您有 Microsoft IIS 服务器并且要将其用作以 Microsoft Smooth Streaming 格式分发媒体文件的源,或者您不打算分发 Smooth Streaming 媒体文件,则选择否。
注意
如果您指定是,您仍可以使用该缓存行为分配其他内容,只要该内容与路径模式值匹配。
有关更多信息,请参阅 为 Microsoft Smooth Streaming 配置点播视频。
限制查看器访问(使用签名 URL 或签名 Cookie)
如果您希望与该缓存行为的 PathPattern
匹配的对象请求使用公共 URL,请选择 No。
如果您希望与该缓存行为的 PathPattern
匹配的对象请求使用签名 URL,请选择 Yes。然后指定您希望用于创建签名 URL 的 AWS 账户;这些账户被称为可信签署人。
有关可信签署人的更多信息,请参阅指定可以创建签名 URL 和签名 Cookie 的签署人。
可信签署人
仅在您为限制查看器访问(使用签名的 URL 或签名的 Cookie)选择是时才适用。
选择您希望用作此缓存行为的可信签署人的 AWS 账户:
-
本身:将您当前登录到 AWS Management Console的账户作为可信签署人。如果您目前作为 IAM 用户登录,添加相关的 AWS 账户作为可信签署人。
-
指定账户:在 AWS 账号字段中输入可信签署人的账户号码。
要创建可信签署人 URL,AWS 账户必须至少具有一个有效的 CloudFront 密钥对。
重要
如果您更新您已经用于分发内容的分配,则在准备开始产生对象的签名 URL 时只添加可信签署人。在您把可信签署人添加到分配为后,用户必须使用签名 URL 访问与该缓存行为 PathPattern
匹配的对象。
AWS 账户 数字
仅在您为可信签署人选择指定账户时才适用。
除当前账户之外或替代当前账户,如果您想使用 AWS 账户 创建签名 URL,请在该字段每一行输入一个 AWS 账户 号。请注意以下几点:
-
您指定的账户必须至少具有一个有效的 CloudFront 密钥对。有关更多信息,请参阅 为签署人创建密钥对。
-
您不能为 IAM 用户创建 CloudFront 密钥对,因此,不能使用 IAM 用户作为可信签署人。
-
有关如何获取账户的 AWS 账户编号的信息,请参阅《AWS 账户管理参考指南》中的查看 AWS 账户标识符。
-
如果您输入当前账户的账户号码,CloudFront 则自动选中本身复选框,并从 AWS 账号列表中删除账号。
自动压缩对象
如果您希望 CloudFront 在查看器支持压缩内容时自动压缩某些类型的文件,请选择是。当 CloudFront 压缩内容时,由于文件更小,因此下载速度更快,并会更快地为用户呈现网页。有关更多信息,请参阅 提供压缩文件。
CloudFront 事件
此设置适用于 Lambda 函数关联。
您可以选择在以下一个或多个 CloudFront 事件发生时,运行 Lambda 函数:
-
在 CloudFront 收到查看器的请求时(查看器请求)
-
在 CloudFront 将请求转发到源之前(源请求)
-
在 CloudFront 收到来自源的响应时(源响应)
-
在 CloudFront 将响应返回到查看器之前(查看器响应)
有关更多信息,请参阅 选择要触发函数的事件。
Lambda 函数 ARN
此设置适用于 Lambda 函数关联。
指定要为其添加触发器的 Lambda 函数的 Amazon 资源名称(ARN)。要了解如何获取函数的 ARN,请参阅使用 CloudFront 控制台添加触发器过程的步骤 1。
包含正文
此设置适用于 Lambda 函数关联。
有关更多信息,请参阅包括正文。
分配设置
以下值适用于整个分配。
主题
价格级别
选择与您想为 CloudFront 服务支付的最高价对应的价格级别。默认情况下,CloudFront 从所有 CloudFront 区域的边缘站点提供您的对象。
有关价格级别以及您选择的价格级别如何影响分配的 CloudFront 性能的更多信息,请参阅 CloudFront 定价
AWS WAF Web ACL
您可以使用 AWS WAF 来保护您的 CloudFront 分配,这是一个 Web 应用程序防火墙,可让您保护您的 Web 应用程序和 API,以在请求到达服务器之前阻止请求。您可以在创建或编辑 CloudFront 分配时为分配启用 AWS WAF。
或者,您可以稍后在 AWS WAF 控制台(https://console.aws.amazon.com/wafv2/
有关 AWS WAF 的更多信息,请参阅《AWS WAF 开发人员指南》https://docs.aws.amazon.com/waf/latest/developerguide/。
备用域名 (CNAME)
可选。指定您想用于对象 URL 的一个或多个域名,代替您创建分配时 CloudFront 指派的域名。您必须拥有该域名,或有权使用它,您可以通过添加 SSL/TLS 证书来验证这一点。
例如,如果您希望对象的 URL:
/images/image.jpg
像这样:
https://www.example.com/images/image.jpg
而不是这样:
https://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 服务提供商。通常,这意味着您拥有该域,或者您正在为域所有者开发应用程序。
有关您可以添加到分配的当前最大备用域名数,或者要请求提高配额(以前称为限制),请参阅分配的一般配额。
更多有关备用域名的信息,请参阅 通过添加备用域名(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 的证书
-
您从第三方证书颁发机构购买并上传到 IAM 证书存储的证书
如果选择此设置,则建议您只在对象 URL 中使用一个备用域名 (https://example.com/logo.jpg)。如果您使用 CloudFront 分配域名 (https://d111111abcdef8.cloudfront.net/logo.jpg),而客户端使用较旧的不支持 SNI 得查看器,则查看器得响应取决于您为支持的客户端选择的值:
-
所有客户端:当 CloudFront 域名与 SSL/TLS 证书中的域名不匹配时,查看器将显示警告。
-
仅支持服务器名称指示 (SNI) 的客户端:CloudFront 将删除与查看器的连接而不返回对象。
-
自定义 SSL 客户端支持
仅在您为 SSL 证书选择自定义 SSL 证书(example.com)时才适用。如果为分配指定了一个或多个备用域名和自定义 SSL 证书,请选择您希望 CloudFront 如何处理 HTTPS 请求:
-
支持服务器名称指示 (SNI) 的客户端 - (推荐) – 使用此设置,几乎所有新式 Web 浏览器和客户端都可以连接到分配,因为它们支持 SNI。但是,某些查看器可能会使用较旧的 Web 浏览器或不支持 SNI 的客户端,这意味着他们无法连接到分配。
要使用 CloudFront API 应用此设置,请在
SSLSupportMethod
字段中指定sni-only
。在 AWS CloudFormation 中,此字段命名为SslSupportMethod
(注意不同的大写)。 -
旧版客户端支持 – 使用此设置,旧版 Web 浏览器和不支持 SNI 的客户端可以连接到分配。但是,此设置会产生额外的月度费用。有关确切的价格,请转到 Amazon CloudFront 定价
页面,然后在此页中搜索专用 IP 自定义 SSL。 要使用 CloudFront API 应用此设置,请在
SSLSupportMethod
字段中指定vip
。在 AWS CloudFormation 中,此字段命名为SslSupportMethod
(注意不同的大写)。
有关更多信息,请参阅 选择 CloudFront 如何处理 HTTPS 请求。
安全策略(最低 SSL/TLS 版本)
指定希望 CloudFront 用于与查看器(客户端)建立 HTTPS 连接的安全策略。安全策略确定两个设置:
-
CloudFront 与查看器通信时使用的最低 SSL/TLS 协议。
-
CloudFront 可用来加密其返回给查看器的内容的密码
有关安全策略(包括每个策略包含的协议和密码)的更多信息,请参阅查看器和 CloudFront 之间支持的协议和密码。
可用的安全策略取决于您为SSL 证书和自定义 SSL 客户端支持指定的值(称为 CloudFront API 中的 CloudFrontDefaultCertificate
和 SSLSupportMethod
):
-
在 SSL 证书是默认 CloudFront 证书 (*.cloudfront.net) 时(当 API 中
CloudFrontDefaultCertificate
是true
时),CloudFront 将安全策略自动设置为 TLSv1。 -
当 SSL 证书是自定义 SSL 证书 (example.com) 并且 自定义 SSL 客户端支持是支持服务器名称指示 (SNI) 的客户端 -(推荐)时(在 API 中
CloudFrontDefaultCertificate
是false
并且SSLSupportMethod
是sni-only
时),您可以从以下安全策略中进行选择:-
TLSv1.2_2021
-
TLSv1.2_2019
-
TLSv1.2_2018
-
TLSv1.1_2016
-
TLSv1_2016
-
TLSv1
-
-
当 SSL 证书是 自定义 SSL 证书 (example.com) 并且 自定义 SSL 客户端支持是旧版客户端支持时(在 API 中
CloudFrontDefaultCertificate
是false
并且SSLSupportMethod
是vip
时),您可以从以下安全策略中进行选择:-
TLSv1
-
SSLv3
在此配置中, TLSv1.2_2021、TLSv1.2_2019、TLSv1.2_2018、TLSv1.1_2016 和 TLSv1_2016 安全策略在 CloudFront 控制台或 API 中不可用。如果要使用这些安全策略之一,您可以选择以下选项:
-
评估您的分配是否需要具有专用 IP 地址的旧版客户端支持。如果查看器支持服务器名称指示 (SNI)
,建议您将分配的自定义 SSL 客户端支持设置更新为支持服务器名称指示 (SNI) 的客户端(在 API 中将 SSLSupportMethod
设置为sni-only
)。这使您能够使用任何可用的 TLS 安全策略,并且还可以降低您的 CloudFront 费用。 -
如果您必须保留具有专用 IP 地址的旧版客户端支持,则可以通过在 AWS 支持中心
创建案例来请求其他 TLS 安全策略(TLSv1.2_2021、TLSv1.2_2019、TLSv1.2_2018、TLSv1.1_2016 或 TLSv1_2016)之一。 注意
在联系 AWS Support 以请求此更改之前,请考虑以下事项:
-
当您将其中一个安全策略(TLSv1.2_2021、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,查看器必须支持 TLSv1.2 或更高版本以及服务器名称标识 (SNI)。CloudFront 不通过 HTTP/2 为 gRPC 提供原生支持。
要使查看器和 CloudFront 使用 HTTP/3,查看器必须支持 TLSv1.3 或更高版本以及服务器名称标识 (SNI)。CloudFront 支持 HTTP/3 连接迁移,允许查看器在不丢失连接的情况下切换网络。有关连接迁移的更多信息,请参阅 RFC 9000 中的连接迁移
注意
有关受支持的 TLSv1.3 密码的更多信息,请参阅查看器和 CloudFront 之间支持的协议和密码。
默认根对象
可选。当查看器请求分发的根 URL (index.html
) 而不是分发中的对象 (https://www.example.com/
) 时,您希望 CloudFront 从您的源(例如,https://www.example.com/product-description.html
)中请求的对象。指定一个默认根对象,以避免公开分配的内容。
名称的长度上限是 255 个字符。该名称可包含以下任何字符:
-
A-Z, a-z
-
0-9
-
_ - . * $ / ~ " '
-
&,作为
&
传递和返回
当您指定默认根对象时,请仅输入对象名称,例如 index.html
。不要在对象名称前添加 /
。
有关更多信息,请参阅 指定默认根对象。
日志记录
您是否希望 CloudFront 记录对象的每个请求信息并将日志文件存储在 Amazon S3 存储桶中。您可以随时启用或禁用日志记录。启用日志记录无额外的费用,但存储和访问 Amazon S3 存储桶中的文件会产生常规的 Amazon S3 费用。您可以随时删除日志文件。有关 CloudFront 访问日志的更多信息,请参阅配置和使用标准日志(访问日志)。
日志存储桶
如果您为日志记录选择开启,则为您希望 CloudFront 存储访问日志的 Amazon S3 存储桶,例如,
。myLogs-
amzn-s3-demo-bucket.s3.amazonaws.com
重要
请勿选择以下 AWS 区域中的 Amazon S3 存储桶。CloudFront 不会向这些区域中的存储桶提供标准日志:
-
Africa (Cape Town)
-
亚太地区(香港)
-
亚太地区(海得拉巴)
-
亚太地区(雅加达)
-
亚太地区(墨尔本)
-
加拿大西部(卡尔加里)
-
欧洲地区(米兰)
-
欧洲(西班牙)
-
欧洲(苏黎世)
-
以色列(特拉维夫)
-
中东(巴林)
-
中东(阿联酋)
如果您启用日志记录,CloudFront 记录有关对象每个最终用户请求的信息并将文件存储在指定的 Amazon S3 存储桶中。您可以随时启用或禁用日志记录。有关 CloudFront 访问日志的更多信息,请参阅配置和使用标准日志(访问日志)。
注意
您必须拥有必需的权限才能获取和更新 Amazon S3 存储桶 ACL,并且存储桶的 S3 ACL 必须向您授予 FULL_CONTROL
。这允许 CloudFront 提供 awslogsdelivery
账户权限,以将日志文件保存在存储桶中。有关更多信息,请参阅 配置标准日志记录和访问日志文件所需的权限。
日志前缀
可选。如果您为日志记录选择开启,请指定您希望 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::8a2e:0370:7334)的请求,请选择 Enable IPv6(启用 IPv6)。
通常,如果您有 IPv6 网络上的用户需要访问您的内容,则应启用 IPv6。不过,如果您使用签名 URL 或签名的 Cookie 来限制对您的内容的访问,并且您使用自定义策略(该策略包含 IpAddress
参数以限制可访问您的内容的 IP 地址),请不要启用 IPv6。如果您希望按 IP 地址限制对某些内容的访问,而不限制对其他内容的访问 (或限制访问,但不按 IP 地址实施限制),则您可创建两个分配。有关使用自定义策略创建签名 URL 的信息,请参阅使用自定义策略创建签名 URL。有关使用自定义策略创建签名 Cookie 的信息,请参阅使用自定义策略设置签名 Cookie。
如果您使用 Route 53 别名资源记录集将流量路由到您的 CloudFront 分配,在满足以下两个条件时,您需要创建另一个别名资源记录集:
-
您为分发启用 IPv6
-
您在对象的 URL 中使用备用域名
有关更多信息,请参阅《Amazon Route 53 开发人员指南》中的使用域名将流量路由到 Amazon CloudFront 分配。
如果您已使用 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 状态代码创建自定义错误页面。
注意
以下值不包含在“创建分配”向导中,所以您只能在更新分配时配置自定义错误页面。
HTTP 错误代码
您希望 CloudFront 返回自定义错误页面时所对应的 HTTP 状态代码。您可以将 CloudFront 配置为返回 CloudFront 缓存的无、部分或全部 HTTP 状态代码的自定义错误页面。
响应页面路径
在源返回您为错误代码指定的 HTTP 状态代码(如 403)时,您希望 CloudFront 返回到查看器的自定义错误页面的路径(如 /4xx-errors/403-forbidden.html
)。如果您希望将您的对象和自定义错误页面存储在不同的位置,您的分配必须包含满足以下条件时的缓存行为:
-
Path Pattern 的值与您的自定义错误消息的路径匹配。例如,假设您在 Amazon S3 存储桶中名为
/4xx-errors
的目录下为 4xx 错误保存了自定义错误页面。您的分配必须包含缓存行为,其路径模式将对自定义错误页面的请求路由至该位置,例如 /4xx-errors/*。 -
源值指定包含您的自定义错误页面的源的源 ID 值。
HTTP 响应代码
您希望 CloudFront 将其与自定义错误页面一起返回给查看器的 HTTP 状态代码。
错误缓存最小 TTL(秒)
您希望 CloudFront 缓存从源服务器发出的错误响应的最短时间。
地理限制
如果您需要阻止选定国家/地区的用户访问您的内容,可以使用允许列表或阻止列表配置您的 CloudFront 分配。配置地理限制不收取额外费用。有关更多信息,请参阅 限制您的内容的地理分配。