AWS CloudFront与Route53映射EC2问题:domain.com访问404
解决domain.com通过CloudFront访问返回404的问题
针对你遇到的主域名domain.com访问404、但www.domain.com正常的情况,按以下步骤排查修复:
1. 检查CloudFront的备用域名配置
CloudFront分发必须明确添加domain.com作为备用域名(CNAMEs),否则它无法识别该域名的请求。
- 进入CloudFront控制台,找到目标分发,进入「常规」标签
- 在「备用域名(CNAMEs)」区域,确认已添加
domain.com和www.domain.com两个域名 - 如果使用HTTPS,确保绑定的SSL证书(来自ACM)同时覆盖这两个域名(可以是通配符证书
*.domain.com,或者包含两个域名的SAN证书)
2. 验证EC2上Web服务器的站点配置
你的EC2虽然托管了domain.com,但Web服务器(Nginx/Apache等)可能未配置接收domain.com的请求:
- 以Nginx为例,打开站点配置文件(通常在
/etc/nginx/sites-available/下),检查server_name字段是否包含domain.com,比如:server { listen 80; server_name domain.com www.domain.com; # 其他配置... } - 配置完成后重启Web服务器(
sudo systemctl restart nginx或对应服务命令)
3. 确认Route 53的A别名记录配置
确保主域名的A别名记录正确指向CloudFront分发:
- 进入Route 53托管区,找到
domain.com的A记录 - 确认记录类型是A - IPv4地址,且「别名」选项为「是」
- 目标选择对应的CloudFront分发(不要手动输入分发URL,直接从下拉列表选择,避免拼写错误)
4. 清除CloudFront缓存
如果之前CloudFront缓存了未配置主域名时的404响应,需要手动清除缓存:
- 在CloudFront控制台的目标分发页面,进入「缓存」标签
- 点击「创建无效ation」,在「路径」中输入
/*,然后提交无效请求,等待缓存清除完成(通常几分钟)
内容的提问来源于stack exchange,提问作者Devops Cloud
相关产品推荐
相关产品推荐

