如何配置CloudFront仅缓存Prestashop静态资源 避免整站缓存及额外成本
Amazon CloudFront 仅缓存Prestashop指定静态资源配置指南
问题根因
你当前的CloudFront分发默认使用*全路径匹配规则,所有访问static.domain.com的请求都会直接转发回主站domain.com,因此会返回完整站点内容,且所有内容都会被计入缓存和回源成本。
操作配置步骤
1. 调整默认全路径行为,拦截非静态资源请求
首先禁用默认全路径的缓存能力,避免非静态资源产生不必要的成本:
- 进入CloudFront分发详情页,切换到「行为」标签页
- 找到默认的
*路径规则,点击编辑:- 缓存策略选择
Managed-CachingDisabled,完全关闭该路径的缓存 - 若不需要
static.domain.com根路径可访问,可配置自定义响应直接返回403状态码,无需回源请求主站内容 - 保存配置
- 缓存策略选择
2. 新增静态资源专属缓存行为
单独为指定的静态资源后缀添加高优先级的缓存规则:
- 点击「创建行为」,按以下规则逐一添加你需要缓存的静态资源类型:
- 路径模式依次填写:
*.jpg、*.png、*.css、*.js,如需缓存字体、图标等资源可追加*.webp、*.ico、*.woff2等后缀规则 - 源和源组选择你已配置的
domain.com源站 - 缓存策略选择
Managed-CachingOptimized,也可自定义缓存策略,静态资源建议设置7天以上的缓存周期 - 查看器协议策略设置为「重定向HTTP到HTTPS」
- 允许的HTTP方法仅勾选
GET、HEAD即可,静态资源不需要其他请求方法
- 路径模式依次填写:
- 注意:所有新增的静态资源路径规则优先级必须高于默认的
*规则,CloudFront会按优先级从高到低匹配路径,优先级设置错误会导致静态资源规则不生效
3. Prestashop侧配套修改
要让站点实际从static.domain.com加载静态资源,需要修改Prestashop的媒体配置:
- 登录Prestashop后台,进入「商店参数 > 流量和SEO」页面
- 找到「媒体服务器」配置项,填写
https://static.domain.com作为静态资源域名 - 保存配置后清空Prestashop全站缓存,检查页面源码中的静态资源链接是否已替换为
static.domain.com前缀
4. 配置验证
- 配置生效后,直接访问
static.domain.com根路径会返回403状态码或无缓存的主站内容(不会被CloudFront缓存) - 访问
static.domain.com/路径/资源名.jpg这类静态资源路径,可通过响应头x-cache: Hit from cloudfront验证缓存是否生效
内容的提问来源于stack exchange,提问作者acordero
相关产品推荐
相关产品推荐

