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

AWS Route53转CloudFront问题:自定义域名cdn.mydomain.com无法访问

我来帮你梳理下问题根源,以及一步步的解决办法——你现在的核心问题是混淆了CloudFront作为统一流量入口的作用,完全不需要为cdn.mydomain.com单独创建S3存储桶,咱们一步步调整配置:

问题根源分析

你不需要给cdn.mydomain.com建S3桶,因为所有CDN子域名的请求都应该通过CloudFront统一转发到你的主S3桶(mydomain.com)。之前创建cdn的S3桶属于多余操作,反而引发了Route53的记录冲突,再加上CloudFront/Route53的配置疏漏,才出现了IP地址未找到的错误。

分步解决方案

1. 先清理错误配置

  • 删掉你创建的cdn.mydomain.com S3存储桶,这个桶完全没必要,只会增加配置复杂度。
  • 登录Route53控制台,检查cdn.mydomain.com的所有记录:确保只保留指向CloudFront分发的A/AAAA别名记录,删除任何旧的CNAME记录或指向S3的A记录,避免冲突。

2. 验证CloudFront核心配置

2.1 确认备用域名(CNAME)设置

进入CloudFront控制台找到你的分发:

  • 在「备用域名(CNAMEs)」里,确认已经添加了mydomain.com、www.mydomain.com、cdn.mydomain.com三个域名。
  • 确认关联的ACM证书是正确的:证书必须包含这三个域名,且证书是在us-east-1(弗吉尼亚北部)区域申请的(CloudFront仅支持该区域的ACM证书,这是AWS硬性要求)。

2.2 检查源配置

确保CloudFront的源指向你的主S3静态网站:

  • 源类型选「自定义源」,源域名填写你的S3静态网站端点(比如mydomain.com.s3-website-<你的区域>.amazonaws.com,不是S3桶的默认域名mydomain.com.s3.amazonaws.com)。
  • 源协议策略根据你的S3配置选「HTTP和HTTPS」或「仅HTTPS」。

2.3 验证行为设置

检查CloudFront的行为规则:

  • 确保默认行为(或针对/asset/*的特定行为)的源是你配置的主S3源,缓存策略符合静态资源需求(比如图片类可以设置较长TTL)。
  • 确认「查看器协议策略」设为「重定向HTTP到HTTPS」,确保用户访问http时自动跳转至https。

3. 确认Route53的正确配置

在Route53托管区中,为cdn.mydomain.com配置(或确认已存在)正确的别名记录:

  • 记录类型选A - IPv4地址,勾选「别名」选项,别名目标选择你的CloudFront分发域名(比如d1234567890abc.cloudfront.net)。
  • 同样创建AAAA - IPv6地址的别名记录,指向同一个CloudFront分发,确保IPv6用户也能正常访问。

4. 等待DNS生效并测试

  • DNS记录的TTL(生存时间)决定生效速度,默认一般是300秒(5分钟),最多可能需要1-2小时完全生效。
  • 用nslookup cdn.mydomain.com或dig cdn.mydomain.com命令测试解析,看是否返回CloudFront的IP地址。
  • 解析正常后,访问https://cdn.mydomain.com/asset/some-image.png,确认资源能正常加载。
关键注意事项
  • CloudFront的ACM证书必须在us-east-1区域,别选错区域导致证书无法关联。
  • 不要用S3桶的默认域名作为CloudFront源,一定要用静态网站托管的端点,否则会出现访问权限或内容不匹配的问题。
  • 所有子域名(www、cdn)的流量都应该通过CloudFront,不需要直接指向S3,这样才能充分利用CDN的缓存、HTTPS、全球加速等功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:20:52