如何通过Route 53与S3实现www至根域名重定向(Elastic Beanstalk场景)
让Elastic Beanstalk应用同时响应example.com和www.example.com的解决方案
嘿,我来帮你搞定这个问题!你已经完成了把example.com指向Classic Load Balancer的关键一步,接下来只需要针对www.example.com做简单配置就行,这里给你两种常用方案,按需选择:
方案一:直接让www.example.com指向Classic Load Balancer
如果想让两个域名直接访问同一个EB应用、不需要跳转,直接这么操作:
- 打开Route 53控制台,进入
example.com的托管区域 - 点击「创建记录」,记录名称填
www - 记录类型选择「A - IPv4地址」
- 勾选「别名」选项,然后在「目标」下拉框里选择你之前绑定
example.com的那个Classic Load Balancer - 保存这条记录,等5-15分钟DNS生效后,
www.example.com就会和example.com一样直接访问你的EB应用了
方案二:用S3静态网站做域名重定向(适合需要跳转的场景)
既然你已经创建了www.example.com的S3存储桶,刚好可以用它来实现域名跳转(比如把www.example.com跳转到example.com,或者反过来),步骤如下:
配置S3静态网站重定向
- 打开S3控制台,找到你的
www.example.com存储桶 - 切换到「属性」标签,找到「静态网站托管」,点击「编辑」
- 选择「重定向请求」选项
- 在「目标域名」里填入你想要跳转的目标(比如填
example.com就是www跳转到主域名) - 协议建议选
https(如果你的EB应用启用了HTTPS的话,否则选http) - 保存配置
- 打开S3控制台,找到你的
配置S3桶权限
- 切换到「权限」标签,找到「桶策略」,点击「编辑」
- 粘贴以下桶策略(记得把
www.example.com替换成你的实际桶名):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::www.example.com/*" } ] }- 保存桶策略
绑定Route 53记录
- 回到Route 53的
example.com托管区域,点击「创建记录」 - 记录名称填
www,类型选「A - IPv4地址」 - 勾选「别名」,在「目标」里选择对应的S3静态网站端点(注意要选和你的桶同区域的S3别名目标)
- 保存记录,等待DNS生效后,访问
www.example.com就会自动跳转到目标域名了
- 回到Route 53的
额外注意事项
- 如果你的EB应用用了HTTPS,一定要确保Classic Load Balancer上绑定了包含
example.com和www.example.com的SSL证书(可以在AWS Certificate Manager里申请一张多域名证书) - DNS生效可能需要几分钟,测试前可以先清一下本地DNS缓存,或者用
nslookup www.example.com确认记录是否生效
内容的提问来源于stack exchange,提问作者Radouane ROUFID
相关产品推荐
相关产品推荐

