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 阻止缓存整个站点的主要内容,如果未能解决你的问题,请参考以下文章

Akamai 与 CloudFront [关闭]

从浏览器缓存提供图像时,AWS S3 + CloudFront 会出现 CORS 错误

如何使用 Cloudfront 保护下载

Amazon CloudFront 未针对未更改的静态内容始终返回 304(未修改)?

来自 Cloudfront 的 HIT 后来自 Cloudfront 的 MISS

阻止 CloudFormation 从 CloudFront 中删除 Lambda 边缘关联