Amazon S3上的静态托pipe – DNSconfiguration
我正在一个小的webapp(所有客户端)上工作,我想在Amazon S3上托pipe它。 我已经find了几个指南,并设法创build一个桶(与我的域名相同),将其设置为网站并上传一些内容。
我在哪里挣扎,所有的文档开始有点模糊,是如何正确configuration我的DNS。
我的所有注册商( 123-reg )都可以build议使用networking转发function,使我可以使用mydomain.com.s3.amazonaws.com
我需要configuration什么,以及在哪里(即123-reg / Amazon)可以获得一个干净的URL?
听起来你已经完成了大部分工作。 为了清楚起见,我将再次重复这些步骤,以确保您的设置正确:
-
使用您的域名作为存储桶名称创build一个s3存储桶(如果您希望您的站点是example.com或www.example.com,那么您的存储桶名称应该是www.example.com)
-
将您的内容上传到s3存储区。 为您的网站索引文件(通常是index.html)select一个一致的名称。 您也可以上传404 Not Found错误的自定义页面。 调用这个404.html。 为您的网站上的每个文件授予读取权限,以便公众可以查看它。 不要给任何额外的权限的桶,只是在其中的文件。
-
将您的存储桶configuration为网站。 使用AWS控制台( https://console.aws.amazon.com/s3/ ),您可以select您的存储桶,单击属性,然后select“网站”选项卡。 点击启用并将您的索引文档设置为“index.html”,将您的错误文档设置为“404.html”。 您还需要设置存取权限以允许通过networking访问( http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html )
-
记下网站configuration选项卡中的“端点”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在你的情况下),你需要创build一个CNAMElogging来将www.example.com映射到www.example.com.s3-website-us-east-1.amazonaws.com
如果您只想要www.example.com,CNAME是您需要的唯一的东西。 大多数人也希望“example.com”工作,所以我们需要另一个步骤。
example.com通常被称为裸域或域的顶点logging。 这是一个问题的原因是它不能成为一个CNAME。 CNAME只能在“www”等子域上使用。 这使得指出s3更加困难。
通常的做法是使用服务自动redirect到example.com的任何请求以指向www.example.com。 然后,这将会提取您的CNAMElogging,您的网站将从s3提供。
自动redirect是不可能与普通的旧的DNS,所以你必须使用其他服务。 一些DNS提供商提供这项服务以及他们的DNS(godaddy,亚马逊route53没有,不知道123-reg)
如果您的DNS提供商不这样做,那么有一些免费的服务。 我使用的是http://wwwizer.com/naked-domain-redirect-它不需要任何注册或付款。;
要使用这种types的服务,您需要为裸域创build一个DNS“A”logging。 对于wwwizer.com服务,您需要创build一个Alogging,将example.com指向174.129.25.170。 就这样!
所以,通过这个设置,如果用户在浏览器中键入example.com,会发生以下情况:
- DNS查询:example.com – > 174.129.25.170(wwwizer.com的服务)
- example.com的HTTP请求为174.129.25.170
- 174.129.25.170redirectexample.com – > http://www.example.com
- DNS查询:www.example.com – > CNAME到www.example.com.s3-website-us-east-1.amazonaws.com
- DNS查询:www.example.com.s3-website-us-east-1.amazonaws.com – >指向Amazon S3
- http://www.example.com的HTTP请求现在由Amazon S3提供
请享用!
我相信你必须select你的桶中的所有文档,右键单击,并select“公开”。 每次在桶中发生变化时,您都必须这样做。 然后,我通常右键点击存储桶,select属性,在右侧窗格中select权限,然后添加“所有人作为”被授予者“,然后给他们只有”列表“权限,其余的文章是非常好的。我可以解决我的问题,也可以在“静态网站托pipe”下的S3域内将裸域redirect到www域,这可能是最简单的方法,再次感谢您的帮助。
蒂姆
从123-reg控制面板上的高级DNS屏幕上
- 我通过点击“重置DNS”button来启动默认的123-reg设置。
这给了我以下;
DNS条目 types 优先级 TTL 目标/目标
* A 81.xx.xx.xx
@ A 81.xx.xx.xx
@ MX 10 xx0.123-reg.co.uk
@ MX 20 xx1.123-reg.co.uk
- 然后我添加了这个条目
www CNAME http://www.example.com.s3-website-us-east-1.amazonaws.com
从他们的pipe理DNS指南pdf说,“@logging”指的是“你的域的最纯净的forms没有子域”,即裸域名stackoverflow.com
但是它没有提到“*logging”是什么,我认为这将是抓住所有子域,并认为它可能会超过CNAMElogging,但这似乎并不是这样。