如何根据 HTTP 标头缓存 CloudFront 中的内容?

上次更新日期:2022 年 4 月 14 日

我想根据 HTTP 标头缓存 Amazon CloudFront 中的内容。我该如何操作?

简短描述

要配置您的分配以缓存基于 HTTP 标头的内容,请执行以下操作之一:

  • 创建缓存策略并将其连接至分配中的行为
  • 编辑分配中现有旧式缓存行为的设置

最佳实践是新建缓存策略来缓存内容。可以使用新的缓存策略来更多地自定义配置,而不是编辑旧式分配。

重要提示:无法将 CloudFront 配置为基于标头类型 ConnectionHost(适用于 Amazon S3 源)、Proxy-AuthorizationTEUpgrade 的请求标头值进行缓存。有关更多信息,请参阅选择用作缓存基础的标头

解决方案

创建缓存策略

  1. 使用 CloudFront 控制台创建缓存策略
  2. TTL 设置下,输入最小 TTL最大 TTL默认 TTL 的值,以管理 CloudFront 缓存对象的时间。默认情况下,缓存的文件将在 24 小时后自动过期。
  3. 缓存密钥设置下,为标头选择包括以下标头
  4. 添加标头下拉列表中选择标头,或选择添加自定义以添加自定义标头。
  5. 根据要将策略附加到的行为的要求,完成缓存策略的所有其他设置。然后,选择 Create(创建)。
  6. 创建缓存策略后,请按照以下步骤将策略附加到 CloudFront 分配的相关行为

编辑现有行为的设置

  1. 打开 CloudFront 控制台,然后选择您的分配。
  2. 选择行为选项卡。然后,根据选定的 HTTP 标头选择要缓存内容的路径。
  3. 选择编辑
  4. 缓存键和源请求下,确认已选择旧缓存设备。
    如果未选择旧缓存设置,请按照上一节中的步骤创建缓存策略。
    -或者-
    如果选择旧缓存设置,请完成以下步骤:
    对于标头,选择包括以下标头
    添加标头下拉列表中,选择要缓存的标头。
  5. 要管理 CloudFront 缓存的缓存持续时间,请在对象缓存下选择自定义。然后在最小 TTL默认 TTL最大 TTL 字段中指定值。有关更多信息,请参阅对象缓存
  6. 选择保存更改

注意:要更改单个文件的缓存持续时间,请配置源以添加 Cache-Control max-age 指令、Cache-Control s-maxage 指令或 Expires 标头。有关更多信息,请参阅使用标头控制单个对象的缓存持续时间

对于 Amazon Simple Storage Service (Amazon S3) 源,请为标头值添加元数据以管理单个对象的缓存过期时间。有关更多信息,请参阅使用 Amazon S3 控制台向对象添加标头


这篇文章对您有帮助吗?


您是否需要账单或技术支持?