You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFront返回S3过时内容 执行/*缓存失效仍无效如何解决

CloudFront执行全路径缓存失效后仍返回S3旧内容排查步骤

按以下顺序逐一排查,覆盖99%以上的同类问题:

  • 首先确认失效任务本身有效
    进入对应CloudFront分发的「失效」面板,检查提交的/*失效任务状态是否为Completed:失效任务从提交到全球所有边缘节点同步完成最长需要15分钟,状态为In Progress时部分节点仍会返回旧内容,等待执行完成即可。同时核对分发ID是否正确,避免选错同账号下其他CloudFront实例。如果是通过AWS CLI/API提交的失效,确认命令路径参数加了双引号:aws cloudfront create-invalidation --distribution-id <你的分发ID> --paths "/*",未加引号时shell会将*解析为本地当前目录文件名,导致提交的失效路径完全不符合预期。
  • 验证S3源站文件真实状态
    不要通过CloudFront域名验证源站文件,直接通过S3预签名URL、S3静态托管域名拉取目标文件,核对内容、ETag、最后修改时间,确认新文件确实正确上传:
    • 检查是否上传到了错误的存储桶、错误的路径,和CloudFront配置的源站存储桶、源路径前缀不匹配
    • 检查新上传对象的权限:如果用OAI/OAC做源站访问控制,确认OAI/OAC身份对新对象有s3:GetObject权限,权限不足时CloudFront回源会拿到403错误,若开启了陈旧缓存容错规则,会持续返回旧版本缓存内容
    • 如果存储桶开启了版本控制,确认没有手动给CloudFront配置固定版本ID参数,导致始终拉取旧版本对象
  • 核查缓存配置导致失效不生效
    检查当前分发绑定的缓存策略:如果自定义缓存策略中配置了基于请求头、Cookie、查询参数作为缓存键分片,单纯的/*失效规则只会清除无额外参数的默认缓存分片,带特定参数/头/Cookie的缓存分片不会被清除。这种场景要么提交失效时补全所有缓存键对应的参数规则,要么临时调整缓存策略关闭额外分片维度后重新提交全路径失效。
    同时排查是否在CloudFront前额外套了其他代理/CDN服务:本地修改Hosts将域名直接指向CloudFront分配的边缘节点域名,拉取文件验证,如果直连CloudFront能拿到新内容,说明问题出在上层代理/CDN的缓存,和CloudFront本身无关。
  • 排除本地缓存与边缘逻辑干扰
    先用无缓存模式拉取文件验证:用curl加无缓存头发起请求 curl -H "Cache-Control: no-cache" https://你的域名/目标文件路径 -I,查看响应头:
    • 如果X-Cache值为Hit from cloudfront且Age值远大于0,说明确实命中了CloudFront边缘缓存,回到上一步重新核查失效规则与缓存策略
    • 如果X-Cache值为Miss from cloudfront但返回内容还是旧的,检查是否配置了Lambda@Edge/CloudFront Functions:查看对应边缘函数的逻辑,是否存在硬编码返回旧内容、修改回源请求路径到旧文件的逻辑。
      如果直连边缘节点拿到的是新内容,但浏览器访问还是旧的,是浏览器本地缓存导致,强制刷新(Ctrl+F5/Cmd+Shift+R)即可,和CloudFront缓存无关。
  • 特殊场景排查
    如果开启了Stale-While-Revalidate/Stale-If-Error陈旧缓存规则,去CloudFront访问日志中核对对应请求的回源状态码,如果回源返回4xx/5xx错误,CloudFront会自动返回已缓存的旧内容,这种情况先修复源站的权限、文件存在性问题,确保回源能正常返回200状态码和新文件,再重新提交失效即可。
    注意:如果你的静态资源是带文件hash的版本化资源(比如app.a1b2c3.js),不需要做缓存失效,直接上传新hash命名的文件、更新入口页对新文件的引用即可,全路径失效反而可能因为规则匹配问题出现缓存清理不彻底的情况。

内容的提问来源于stack exchange,提问作者Mike D Hovhannisyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 05:18:29