Amazon S3上的静态托管 - DNS配置

Mer*_*son 116 dns hosting amazon-s3 amazon-web-services

我正在开发一个小型webapp(所有客户端)我想在Amazon S3上托管它.我已经找到了几个这方面的指南,并设法创建了一个桶(与我的域名相同),将其设置为网站并上传一些内容.

在我努力的地方,以及所有文档开始变得有点模糊的地方,是如何正确配置我的DNS.

我的所有注册商(123-reg)都可以建议网络转发给我mydomain.com.s3.amazonaws.com

我需要配置什么,以及在哪里(即123-reg/Amazon)可以获得干净的URL?

sec*_*ike 243

听起来你已经完成了大部分工作.为清楚起见,我会再次检查这些步骤,以确保您的设置正确:

  1. 使用您的域名作为存储桶名称创建一个s3存储桶(如果您希望您的网站是example.com或www.example.com,您的存储桶名称应为www.example.com)

  2. 将您的内容上传到s3存储桶.为您的网站索引文件选择一致的名称(通常是index.html).您还可以上传404 Not Found错误的自定义页面.请拨打404.html.为您网站中的每个文件授予读取权限,以便公众可以查看它.不要对存储桶提供任何额外的权限,只包括其中的文件.

  3. 将您的存储桶配置为网站.使用AWS控制台(https://console.aws.amazon.com/s3/),您可以选择存储桶,单击属性,然后选择"网站"选项卡.单击"启用"并将索引文档设置为"index.html",将错误文档设置为"404.html".您还需要设置具有访问权限的存储桶,以允许通过Web访问(http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html)

  4. 记下网站配置选项卡中的"端点"URL.这是您网站的所在地.您可以在新窗口中打开链接,您应该看到您的网站.单击并确保一切按预期工作.

您必须在以下所有步骤中使用端点地址.正常的www.example.com.s3.amazonaws.com无法使用 - 您需要使用区域版本(http://www.example.com.s3-website-us-east-1.amazonaws.com/)

现在,我们可以设置DNS以为您提供干净的自定义URL.

首先,我们会将www.example.com映射到您的网站.

使用DNS提供商的工具(在您的情况下为123-reg),您需要创建CNAME记录以将www.example.com映射到www.example.com.s3-website-us-east-1.amazonaws.com

如果您只是想要www.example.com,那么CNAME是您唯一需要的.大多数人也希望"example.com"工作,所以我们需要另一步.

example.com通常被称为裸域或域的顶点记录.这是一个问题的原因是它不能是CNAME.CNAME仅适用于"www"等子域.这使得指向s3变得更加困难.

通常的方法是使用服务自动将任何发送到example.com的请求重定向到指向www.example.com.然后,这将获取您的CNAME记录,您的网站将从s3提供.

使用普通旧DNS无法实现自动重定向,因此您必须使用其他服务.一些DNS提供商提供此服务以及他们的DNS(godaddy确实如此,amazon route53没有.不确定123-reg)

如果您的DNS提供商不这样做,那么有一些免费服务.我使用的是http://wwwizer.com/naked-domain-redirect - 它不需要任何注册或付款.

要使用此类服务​​,您需要为裸域创建DNS"A"记录.对于wwwizer.com服务,您需要创建A记录以将example.com指向174.129.25.170.就这样!

因此,使用此设置,如果用户在其浏览器中键入example.com,则会发生以下情况:

  1. DNS查询:example.com - > 174.129.25.170(wwwizer.com的服务)
  2. 对example.com的174.129.25.170的HTTP请求
  3. 174.129.25.170重定向example.com - > www.example.com
  4. DNS查询:www.example.com - > CNAME到www.example.com.s3-website-us-east-1.amazonaws.com
  5. DNS查询:www.example.com.s3-website-us-east-1.amazonaws.com - >指向Amazon S3
  6. 现在,Amazon S3会为www.example.com提供HTTP请求

请享用!

  • 非常感谢所有这一切的清晰度!我已经做出了改变,只是等待它正确,手指交叉一切都会起作用. (2认同)
  • Amazon S3现在[支持使用Route 53重定向](http://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html). (2认同)