使用CloudFront的WordPress站点缓存异常及压缩失效问题求助
CloudFront缓存异常与Brotli压缩失效问题解析
1. 缓存键配置缺失
- CloudFront的缓存键如果未包含
Accept-Encoding头部,会导致不同压缩格式的请求共用同一缓存条目。后续请求Brotli时,可能返回缓存的gzip版本,甚至触发页面跳转异常。 - 检查CloudFront分发的缓存行为设置,确认是否将
Accept-Encoding添加到缓存键包含的头部中。缺失该配置会导致压缩格式混乱,长期积累后出现缓存异常。
2. Brotli压缩触发条件未满足
- CloudFront启用Brotli有严格限制:
- 原始服务器返回状态码必须为200、206、301、302、404或405
- 请求文件类型需在CloudFront支持Brotli的列表内(如HTML、CSS、JS、JSON等)
- 请求头部
Accept-Encoding必须包含br - 原始文件大小需在1KB到10MB之间
- 若站点部分页面3周后状态码、文件大小或类型发生变化,会导致Brotli无法触发,只能 fallback 到gzip,甚至因缓存不匹配出现页面跳转。
3. 缓存过期与刷新机制不完善
- 清除缓存仅能临时解决问题,3周后复发大概率是缓存TTL设置过长,且未配置自动缓存失效触发机制。
- WordPress内容更新时,若未自动通知CloudFront刷新对应缓存,旧缓存条目会长期留存,当压缩格式信息丢失或错误时,就会出现异常。
- 同时检查缓存失效请求是否覆盖所有异常路径,仅刷新部分页面会导致未覆盖路径保留错误缓存。
4. Apache响应头部干扰
- 即便Apache未启用压缩,若返回
Content-Encoding头部(空值或错误值),会干扰CloudFront的压缩逻辑。 - 用
curl -I https://your-domain.com/page查看响应头部,确认无多余的Content-Encoding字段,确保CloudFront完全接管压缩处理。
5. 边缘节点缓存同步延迟
- CloudFront全球边缘节点缓存存在同步延迟,部分节点可能未及时更新缓存策略或失效指令。3周刚好是部分节点缓存TTL到期周期,重新拉取缓存时若原始服务器响应异常,会导致压缩格式错误或页面内容异常。
内容的提问来源于stack exchange,提问作者tritran
相关产品推荐
相关产品推荐

