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

AWS CloudFront未更新文件求助:自定义域名仍显示旧内容

解决方案:自定义域名访问CloudFront仍显示旧S3内容

嘿,我完全懂你现在的头疼——刚替换了S3里的网站内容,直接访问CloudFront或S3原生域名能看到新页面,但自定义域名却还停留在旧的“under construction”页面,哪怕调了TTL、发了失效请求也没效果对吧?咱们一步步排查解决:

1. 先排除浏览器本地缓存的干扰

这是最常见的“假问题”!有时候浏览器会死死缓存旧页面,哪怕CloudFront已经更新了内容:

  • 试试用无痕/隐私模式访问你的自定义域名,如果能看到新内容,那就是本地缓存的锅。可以手动清空浏览器缓存(快捷键Ctrl+Shift+Delete),或者告诉用户等待缓存自然过期(根据你设置的TTL)。
  • 也可以用curl -I https://你的自定义域名命令查看响应头,看X-Cache字段:如果是Hit from cloudfront说明命中了缓存,Miss则会拉取新内容。

2. 确认自定义域名的DNS指向与CloudFront配置匹配

很多新手会在这里踩坑:

  • 检查你的DNS服务商(比如Route 53)里的A/AAAA记录,别名目标是不是正确的CloudFront分发ID?别不小心指向了旧的分发或者错误的资源。
  • 登录CloudFront控制台,找到你的分发,查看**备用域名(CNAME)**列表,确认你的自定义域名已经正确添加,并且SSL证书(如果用HTTPS)是完全匹配的——CloudFront的证书必须覆盖这个自定义域名,而且要部署在us-east-1区域(如果是AWS Certificate Manager的证书)。

3. 检查CloudFront失效操作是否到位

你说执行了失效,但可能有细节没做对:

  • 确认失效的路径是/*(全站点失效)或者具体的/index.html(如果旧内容是首页),别只填了单个文件却漏了根路径的默认索引页。
  • CloudFront失效不是即时生效的,需要5-10分钟同步到全球边缘节点,别刚点完失效就急着测试。
  • 如果你用了CloudFront缓存策略(而不是手动设置TTL),那你之前改的元数据和TTL可能被策略覆盖了。去分发的“缓存策略”选项卡看看,是不是策略里的默认TTL比你预期的长,或者有没有开启缓存优化导致旧内容没被替换。

4. 验证S3静态网站的基础配置

虽然你说直接访问S3域名正常,但还是快速检查下:

  • 确认S3 Bucket的静态网站托管设置里,索引文档是你新上传的index.html(或你用的默认文件名),别不小心还是指向了已删除的旧文件。

5. 强制刷新边缘节点缓存

如果以上都没问题,可能是部分边缘节点的缓存没同步:

  • 再发一次全站点失效请求(路径填/*),然后等待10分钟左右,再用不同地区的网络(比如手机热点)测试自定义域名,看是否能加载新内容。

按照这个顺序排查,基本能解决你的问题!

内容的提问来源于stack exchange,提问作者mez0

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:21:26