【问题标题】:Hosting static website with AWS S3 and Route 53使用 AWS S3 和 Route 53 托管静态网站
【发布时间】:2012-07-27 13:08:11
【问题描述】:

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

到目前为止,我做了以下工作: 创建存储桶 www.a.com,授予适当的权限以使其成为网络(对公众可见)并上传所有文件。获取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 无效)。

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

谢谢。

【问题讨论】:

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


    【解决方案1】:

    首先,我建议添加一个名为 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 > 选择您的域 > 转到记录集 > 创建记录集

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

    你已经完成了。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 谢谢,目前我使用的是裸重定向服务。
      猜你喜欢
      • 2012-11-07
      • 2021-05-14
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 2013-12-09
      • 2017-05-14
      • 2019-09-03
      相关资源
      最近更新 更多