2012-07-29 88 views
2

假设我目前在专用服务器上有网站www.a.com(完全静态),并且我想切换到AWS。使用AWS S3和Route 53托管静态网站

到目前为止,我做了以下工作: 创建bucket www.a.com,给予适当的权限,使其成为web(公开显示)并上传所有文件。获取http://www.a.com.s3-website-eu-west-1.amazonaws.com

我在AWS Route 53中创建了托管区域,并自动获得两个记录集,NS和SOA。 接下来,我为* .a.com添加了一个CNAME。与价值http://www.a.com.s3-website-eu-west-1.amazonaws.com

问题是现在,我为A记录添加什么?我没有IP。 (作为没有A记录的原因,www.a.com有效,但a.com不起作用)。

我可以使用我的专用服务器以保持服务邮件吗?我应该如何设置MX,因为我有一台WHM/cPanel服务器?

谢谢。

回答

-1

这是在S3上托管静态站点时经常遇到的限制。你有几个选择。

  • 使用,nslookup或类似工具确定你的S3桶使用的IP地址。这将起作用,但随着亚马逊在他们的IP周围洗牌,它很可能最终破裂。
  • 使用提供“裸露重定向”服务的Route53以外的DNS提供商。当有人访问您的根目录时,DNS提供商将执行HTTP 301重定向到您的“www”记录。
  • 在您自己的服务器/ EC2实例上托管一个非常简单的网站,该网站发布相同的HTTP 301重定向。

编辑:12月27日的2012年S3现在支持的方式来做到这一点没有上面提到的所有解决方法。查看有关root website hosting from S3的AWS博客。

+0

谢谢,我使用的是赤裸裸的重定向服务至今。 – xBlue 2012-07-30 21:33:03

6

首先,我建议添加一个名为a.com的额外存储桶,然后不要删除www.a.com,您将在后面添加一个CNAME,以便www.a.com在浏览器中重定向到a.com。

现在你已经创建了a.com桶,转到属性>静态网站托管>启用虚拟主机>输入index.html和上传文件与名字你的水桶。

然后去属性>权限>编辑桶政策>下面的代码粘贴:

{ 
    "Version":"2008-10-17", 
    "Statement":[{ 
    "Sid":"PublicReadForGetBucketObjects", 
     "Effect":"Allow", 
     "Principal": { 
      "AWS": "*" 
     }, 
     "Action":["s3:GetObject"], 
     "Resource":["arn:aws:s3:::example-bucket/*" 
     ] 
    } 
    ] 
} 

变化{例如斗}到{} a.com和保存。

现在去Route53>选择您的域名>转到记录集>创建记录集

确保“类型”设置为“A”,然后选择“是”旁边的“别名”。点击进入别名目标区域,在S3网站下,您现在应该看到a.com。选择它,然后在底部选择“创建记录集”。

大功告成。

相关问题