如何将AWS S3存储桶映射到子域名?(多站点冗余部署)
如何将AWS S3存储桶映射到子域名(适配双版本站点场景)
没问题,针对你这种主站在自有数据中心、云端版本放S3的双运行场景,我来一步步拆解配置步骤:
1. 创建并正确配置S3存储桶
首先得确保你的S3存储桶名称完全匹配你要使用的子域名,比如你想把云端版本放在cloud.mycompany.com.ar,那存储桶名字就必须是cloud.mycompany.com.ar(S3要求桶名和域名一致才能通过CNAME映射)。
接下来配置存储桶的静态网站托管:
- 进入S3控制台,找到你的桶,切换到「属性」标签,拉到「静态网站托管」部分
- 选择「启用」,设置「索引文档」(比如
index.html,对应你静态站点的首页)和「错误文档」(可选,比如404.html) - 复制页面上显示的「静态网站端点」(比如
cloud.mycompany.com.ar.s3-website-sa-east-1.amazonaws.com,注意不同区域后缀不同)
然后配置桶策略允许公开访问(如果你的静态站点是公开可访问的):
- 切换到「权限」标签,找到「桶策略」,粘贴类似下面的策略(替换成你的桶名):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::cloud.mycompany.com.ar/*" } ] }
另外要确保「阻止公共访问」设置里,相关的选项是关闭的(否则桶策略会失效)。
2. 联系你的ISP配置DNS解析
因为域名由互联网服务商管理,你需要联系他们添加一条CNAME记录:
- 记录类型选择
CNAME - 主机记录(子域名)填你想用的前缀,比如
cloud(对应cloud.mycompany.com.ar) - 记录值填你之前复制的S3静态网站端点(注意不要加
http://或https://)
等待DNS生效(通常需要几分钟到几小时,取决于TTL设置)。
3. 验证配置并测试
DNS生效后,直接在浏览器访问你的子域名(比如http://cloud.mycompany.com.ar),检查是否能正常加载S3上的静态站点。如果遇到访问被拒绝的问题,先排查:
- 桶名是否和子域名完全一致
- 桶策略是否正确配置,公共访问是否关闭了阻止
- DNS记录是否已经生效(可以用
nslookup或dig命令验证)
额外注意事项(可选但实用)
- 如果需要HTTPS访问:S3静态网站本身不支持HTTPS,你需要搭配AWS CloudFront分发。创建CloudFront分发时,源指向你的S3静态网站端点,然后配置SSL证书(可以用AWS Certificate Manager免费申请),最后把DNS的CNAME记录指向CloudFront的分发域名即可。
- 流量区分:确保主站
www.mycompany.com.ar的DNS记录不受影响,依然指向你的自有数据中心,子域名单独指向S3(或CloudFront)。
内容的提问来源于stack exchange,提问作者user6354
相关产品推荐
相关产品推荐

