Cloudfront 阻止缓存整个站点
Posted
技术标签:
【中文标题】Cloudfront 阻止缓存整个站点【英文标题】:Cloudfront prevent caching whole site 【发布时间】:2022-01-05 00:14:33 【问题描述】:我想使用 Cloudfront 缓存来自 Prestashop 网站 (domain.com) 的 jpg、png、css、js 文件并获得一个最快的网站。 我设置了这个配置:
我在 Amazon CloudFront 中使用原始 domain.com 和备用域名 static.domain.com 创建一个分配
Domain.com = Prestashop 网站 static.domain.com -> CNAME -> xxx.cloudfront.net(CF提供)
现在,当我加载“static.domain.com”时,加载整个站点“domain.com”。这对 SEO 不利,而且缓存整个网站会很昂贵。
我想优化和正确配置 CF:
-
仅捕获某些文件
避免不必要的开支
我尝试配置行为,但总是加载整个站点。 我在哪里可以配置要缓存的文件? 有人能帮助我吗? 谢谢你和问候
【问题讨论】:
【参考方案1】:您可以为您的 CloudFront 分配创建额外的 Behaviours。在每种行为上,您都可以设置路径模式,例如:images/*.jpg
。这意味着,该行为将仅适用于从您的来源请求某些图像的路径。
每个 CloudFront 分配都有一个默认行为,其路径模式为 *
(缓存所有内容)。您可以通过将缓存策略设置为:Managed - CachingDisabled
(参见:disable caching for certain files)来禁用它。
【讨论】:
是的,我试过了,但是当我访问 static.domain.com,但网站加载已满时,我只想访问某些文件,而不仅仅是缓存,也服务。当您尝试访问不允许的文件(jpg、png、js、css、...)时,我希望您生成 500 错误以上是关于Cloudfront 阻止缓存整个站点的主要内容,如果未能解决你的问题,请参考以下文章
从浏览器缓存提供图像时,AWS S3 + CloudFront 会出现 CORS 错误
Amazon CloudFront 未针对未更改的静态内容始终返回 304(未修改)?