如何为S3托管、Route 53解析的父域名配置www子域名
配置失败原因及解决方案
你为www子域名单独创建托管zone的操作是多余的,先删除该托管zone以及父域zone中对应的www NS记录,按以下步骤操作即可完成跳转:
S3侧配置
- 新建名为
www.foo.com的S3存储桶,保持公有访问配置和你现有foo.com桶完全一致 - 进入该桶的「属性」页,开启「静态网站托管」,选择「重定向请求」,重定向目标填写
foo.com,协议选择和你现有站点匹配的HTTP/HTTPS,保存配置
Route 53侧配置
- 进入你原有
foo.com的Route 53托管zone,新建A记录- 记录名填写
www - 记录类型选择
A - IPv4 地址 - 开启「别名」开关
- 别名目标类别选择「S3 网站端点」,选中你对应区域下的
www.foo.com静态网站端点 - TTL默认设为300即可,保存记录
- 记录名填写
特殊场景补充(HTTPS/CloudFront 场景)
如果你为父域名配置了CloudFront实现HTTPS访问,需要额外完成以下配置:
- 在ACM中为
www.foo.com签发SSL证书,证书区域需和CloudFront分配的区域一致(全球服务需选us-east-1区域) - 进入对应CloudFront分配的设置页,在「备用域名(CNAME)」中添加
www.foo.com,选择刚才签发的SSL证书,保存更改 - 回到Route 53的www A记录设置中,将别名目标修改为对应的CloudFront分配域名即可
你之前操作的错误点
单独创建www子域名托管zone后,你仅在父域添加了NS记录,没有在www子域名的托管zone中添加对应的A/CNAME记录指向跳转资源,且多托管zone的配置会增加解析链路的复杂度与生效延迟,完全没有必要。
配置完成后受DNS缓存影响,最长可能需要48小时全球生效,你可以本地执行nslookup www.foo.com验证解析是否已指向正确目标。
内容的提问来源于stack exchange,提问作者Nick Gotch
相关产品推荐
相关产品推荐

