选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

控制 CloudFront 缓存错误的时间长度

聚焦模式
控制 CloudFront 缓存错误的时间长度 - Amazon CloudFront

CloudFront 缓存错误响应的默认持续时间为 10 秒。CloudFront 然后将对象的下一个请求提交给您的源,以查看导致错误的问题是否已解决,并且请求的对象是否可用。

您可以为 CloudFront 缓存的各 4xx 和 5xx 状态代码指定错误缓存时长(错误缓存最小 TTL)。(有关更多信息,请参阅 CloudFront 缓存的 HTTP 4xx 和 5xx 状态代码。) 指定持续时间时,注意以下几点:

  • 如果您指定一个很短的错误缓存时长,则与指定较长的时长相比,CloudFront 将向您的源转发更多请求。对于 5xx 错误,这可能会加重原先导致源返回错误的问题。

  • 当源针对某个对象返回错误时,CloudFront 会通过错误响应或自定义错误页面响应对象请求,直到超过错误缓存时间长度。如果您指定一个很长的错误缓存持续时间,CloudFront 可能会在对象再次转为可用后的很长一段时间内继续使用错误响应或您的自定义错误页面来响应请求。

注意

您可以为 HTTP 状态代码 416(无法满足请求的范围)创建自定义错误页面,并可以更改源向 CloudFront 返回状态代码 416 时 CloudFront 向查看器返回的 HTTP 状态代码。(有关更多信息,请参阅 更改 CloudFront 返回的响应代码。) 但是,CloudFront 不缓存状态代码 416 响应,因此,即使您为状态代码 416 指定错误缓存最小 TTL 的值,CloudFront 也不会使用它。

如果您要控制 CloudFront 为各个对象缓存错误的时间长度,可以配置源服务器以为该对象的错误响应添加相应标头。

如果源添加 Cache-Control: max-ageCache-Control: s-maxage 指令或 Expires 标头,则 CloudFront 缓存错误响应的时间为标头中的值或错误缓存最小 TTL 值(以较大的值为准)。

注意

Cache-Control: max-ageCache-Control: s-maxage 值不能大于为提取错误页面的缓存行为设置的最大 TTL 值。

如果源添加其他 Cache-Control 指令或不添加标头,则 CloudFront 缓存错误响应的时间等于错误缓存最小 TTL 的值。

如果某一对象的 4xx 或 5xx 状态代码的过期时间超过您希望等待的时间且对象再次可访问,您可以使用所请求对象的 URL 使缓存错误代码失效。如果源返回针对多个对象的错误响应,您需要分别使各个对象失效。有关使对象失效的更多信息,请参阅 使文件失效以删除内容

如果您为 S3 存储桶源启用了缓存,并且在 CloudFront 分配中,将错误缓存最小 TTL 配置为 0 秒,则对于 S3 源错误,您仍会看到 1 秒的错误缓存最小 TTL。CloudFront 这样做是为了保护您的源免于 DDoS 攻击。这不适用于其他类型的源。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。