在我之前的博客中,我们已经谈到了什么是CloudFront及其工作,在这篇博客中,我们将学习CloudFront缓存和无效的工作方式。
CloudFront 缓存
减少直接向原生服务器的请求数量是使用CloudFront的目标之一。由于CloudFront缓存,更多的对象从CloudFront边缘位置提供,这些位置离用户更近。这减少了延迟,并最大限度地减少了我们源服务器上的负载。
我们可以对多种事物进行缓存:
- 头文件
- 会话Cookie
- 查询字符串参数
正如我们所知,缓存存在于每个CloudFront Edge位置:

在图中,我们可以看到,当客户端向CloudFront Edge地点发出请求时,将根据头信息、cookies和查询字符串参数的基本值检查缓存。
然后缓存有一个基于缓存生存时间的过期,如果该值不在缓存中,那么查询或整个HTTPS请求将直接转发到原点,然后通过查询响应来填充缓存。
所以,Cloudfront的主要目的是通过最大限度地提高缓存的点击率,即直接从缓存中获得的请求数量,来减少我们原点上的请求数量。
为此,我们可以调整缓存的TTL(范围从0秒到1年),以及一些头文件,如缓存控制头文件或过期头文件。
现在,让我们看看它是如何工作的。
前提是
- AWS账户
- CloudFront分布
让我们看看 我们的CloudFront Distribution 的缓存行为 ,因为它将告诉我们缓存将如何工作。

点击 "编辑"。你可以看到缓存策略,它被称为CachingOptimized,建议用于S3起源。

点击 "查看策略 "来查看策略。

我们可以看到CloudFront的缓存策略的TTL最小为1秒,最大为31536000,默认为86400秒。如果我们想改变文件的**生存时间(TTL)**设置,我们可以创建自己的新策略。
所以现在让我们使用分布域名从CloudFront获取一个对象。

现在,如果我们在我们的S3桶中上传这个文件的新版本并尝试访问它。

我们直接从Amazon S3获得这个更新的文件,如果我们刷新CloudFront的页面,我们仍然会得到" Hello World !".
创建无效文件
因此,为了告诉CloudFront强制获取这个新版本的文件,我们需要创建无效信息。

点击 "创建无效信息"。添加星号(*),它指示CloudFront从其缓存中清除所有东西,并在其位置上获取新的CloudFront Amazon S3对象。

一旦它被创建,刷新CloudFront页面,我们将得到更新的文件,因为它被正确地获取了。

总结
在这篇博客中,我们已经了解了什么是AWS CloudFront缓存,以及它是如何通过适当的演示工作的。如果你有任何疑问,可以直接与我联系。
学习愉快!!