使用AWS S3和Route 53托管静态网站

时间:2012-07-29 18:19:02

标签: amazon-s3 amazon-web-services dns amazon-route53

假设我目前在专用服务器上有网站www.a.com(完全静态),我想切换到AWS。

到目前为止,我做了以下事情: 创建存储桶www.a.com,给予适当的权限,使其成为Web(公开可见)并上传所有文件。获得http://www.a.com.s3-website-eu-west-1.amazonaws.com

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

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

我可以以某种方式使用我的专用服务器来继续提供电子邮件吗?鉴于我有WHM / cPanel服务器,我该如何设置MX?

感谢。

2 个答案:

答案 0 :(得分: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/*"
      ]
    }
  ]
}

将{example-bucket}更改为{a.com}并保存。

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

确保'Type'设置为'A',然后选择'Alias'旁边的'Yes'。单击Alias Target区域,在S3网站下,您现在应该看到a.com。选择它,然后在底部选择“创建记录集”。

你已经完成了。

答案 1 :(得分:-1)

在S3上托管静态网站时,这是一个常见的限制。你有几个选择。

  • 使用dignslookup或类似工具确定S3存储桶使用的IP地址。这将有效,但随着亚马逊改变他们的IP,它可能最终会破裂。
  • 使用Route53以外的DNS提供程序提供“裸重定向”服务。当有人访问您的根时,DNS提供商将对您的“www”记录执行HTTP 301重定向。
  • 在您自己的服务器/ EC2实例上托管一个非常简单的网站,该网站会发出相同的HTTP 301重定向。

编辑:截至2012年12月27日,S3现在支持一种在没有上述所有变通方法的情况下执行此操作的方法。查看AWS博客中的root website hosting from S3