【Amazon 实验②】使用缓存策略及源请求策略,用于控制边缘缓存的行为及回源行为

文章目录

接上一篇文章【Amazon 实验①】使用 Amazon CloudFront加速Web内容分发,我们现在了解和配置如何使用缓存策略及源请求策略,用于控制边缘缓存的行为及回源行为。

1. 了解缓存策略和源请求策略

基于步骤1中的CloudFront分配,了解和配置如何使用缓存策略及源请求策略,用于控制边缘缓存的行为及回源行为。

1.1 使用缓存键和缓存策略

CloudFront缓存策略

  • CloudFront缓存策略由缓存键值(Cache Key)和 TTL 构成。

  • CloudFront提供了多种预设的托管缓存策略 ,适配不同场景中的缓存行为控制,如我们在步骤1中使用的CachingOptimized、CachingDisabled等。

CloudFront可识别以下三种请求元素,进而将指定元素作为缓存键值进行缓存,分别为:请求头 / 查询字符串 / Cookie,合理地配置缓存键将提高对象在边缘站点上的缓存命中率。

如何控制缓存时间

可以通过2种方式控制缓存时间:

  • 源站的缓存标头Cache-Control,如max-age、expires、no-cache、private等值
  • CloudFront缓存策略中的TTL

当同时在源站指定Cache-Control标头并使用CloudFront缓存策略时,有关两者将如何影响CloudFront边缘缓存时间和客户端缓存时间。

实验:使用CloudFront缓存策略和缓存键控制缓存行为

在步骤1,我们为CloudFront的默认行为添加了S3桶源站,并分发了一张infra.png图片和index.html主页文件。

在该行为设置中,我们使用了托管的CachingOptimized缓存策略。该策略包含以下设置: 此策略包含以下设置:

  • 最小 TTL:1 秒。
  • 最大 TTL:31536000 秒(365 天)。
  • 默认 TTL:86400 秒(24 小时)。
  • 缓存键中包含的标头:未明确包含任何标头。包含标准化的 Accept-Encoding 标头,因为已启用缓存压缩对象设置
  • 缓存键中包含的 Cookie:无。
  • 缓存键中包含的查询字符串:无。
  • 缓存压缩对象设置:已启用

在接下来的实验中,我们将在URL中使用查询字符串参数访问infra.png,如 https://d123abc.cloudfront.net/infra.png?version=v1https://d123abc.cloudfront.net/infra.png?version=v2 ,验证当前CachingOptimized缓存策略对不同版本的infra.png的缓存效果,并新建基于querystring缓存的缓存策略。

在本实验中我们使用S3对象版本控制模拟需要查询字符串访问的环境。首先回到S3存储桶中,在属性中打开版本控制。

  • 打开存储桶版本控制
  • 更新S3存储桶策略,在Action处添加 s3:GetObjectVersion

上传另一张名为infra.png的图片至S3,在S3对象的版本处,能看到infra.png具有2个版本。

使用CloudFront分配url访问infra.png,并在url中添加?versionId=查询字符串,加入infra.png的版本号。可以看到CloudFront对于不同的URL返回了同样的缓存,这是因为在托管的CachingOptimized缓存策略中并未使用query string(versionId)作为缓存键,故提供先前已缓存在边缘节点的对象(即infra.png,不带其他cache key)

为了使得CloudFront能够根据查询字符串缓存结果,我们需要新建一个CloudFront分配行为和缓存策略。在行为路径中指定/*.png,在缓存策略处点击新建缓存策略,添加 versionId 作为需要缓存的查询字符串,其他TTL设置按需调整,如下图所示。保存缓存策略后,为该行为选择新建的缓存策略。

进入CloudFront失效标签,键入/infra.png使缓存失效。

再次访问两个包含query string的infra.png URL,将看到CloudFront已区分infra.png的查询字符串将versionId作为缓存键进行缓存。

相关推荐
眷怀15 小时前
网卡绑定bonding
linux·运维·服务器·网络·云计算
数勋API17 小时前
银行卡归属地查询API接口如何用PHP调用
开发语言·云计算·php
zhojiew19 小时前
aws xray通过设置采样规则对请求进行过滤
aws
tmgmforex202419 小时前
亚马逊云计算部门挑战英伟达,提供免费AI计算能力
人工智能·科技·云计算
CCSBRIDGE1 天前
给阿里云OSS绑定域名并启用SSL
阿里云·云计算·ssl
沈艺强1 天前
云计算在esxi 主机上创建 4g磁盘,同时在此磁盘上部署linux
云计算
九河云2 天前
AWS EC2镜像费用详解:什么是免费的,什么是收费的?
服务器·云计算·aws
sealaugh322 天前
aws(学习笔记第十二课) 使用AWS的RDS-MySQL
笔记·学习·aws
杰森V+2 天前
融云:社交泛娱乐出海机会尚存,跨境电商异军突起
网络·云计算
腾讯蓝鲸智云2 天前
大模型在蓝鲸运维体系应用——蓝鲸运维开发智能助手
运维·自动化·云计算·sass