如何指定域从Amazon S3提供静态站点?(不是子域名)

Ben*_*min 1 dns amazon-s3

我看到有几个人描述了如何为具有子域的自定义域执行此操作,但没有人谈论如何在没有子域的情况下执行此操作.

示例:将foobar.com和www.foobar.com设置为指向我的Amazon S3托管站点

我个人不想要www前缀.有没有办法让这件事发生?我似乎很疯狂,亚马逊会将其设置为允许静态网站和自定义域,然后将其锁定到前缀域?

提前致谢,

Syz*_*ies 13

由于历史原因,任何URL都需要解析为您已知道如何处理的子域:使用DNS提供程序创建CNAME记录,指向wwwS3托管的子域.有正确的细节,在其他地方很好地描述.

但是,您仍然希望支持这样的用户,他们认为他们的浏览器会自动完成http://,.com并且想要输入裸域domain.com,并让它自动完成您的默认子域,例如www.domain.com.

完成此操作的最简单方法是使用www默认子域,并将DNS提供程序的A记录指向wwwizer.com(174.129.25.170).它们会自动将任何裸域重定向到www前面的同一域.

如果您使用Amazon Route 53提供DNS服务,您可以获得最快的开发周期,并且您的访问者可以获得最快的DNS解析.Route 53可以将其A记录指向wwwizer.com.但是,您可能想要创建一个微型Amazon EC2实例,并开始编程.在50年代,每个人都重建了自己的汽车.在80年代,每个人都在弗莱的过道上推着购物车,并建造了自己的电脑.现在,您希望能够在云中构建自己的计算机,出于多种原因,您会随着时间的推移发现,而Amazon EC2是最佳选择.目前,您的云计算机将简单地为您处理裸域.电子邮件,生成静态网站,...

安装Apache Web服务器(LAMP中的A; LAMP服务器将执行此操作),并为每个域配置虚拟主机.然后在EC2实例上指向弹性IP地址,并更新Route 53以使A记录指向此弹性IP地址.Amazon不支持将多个弹性IP指向同一个EC2实例,但您可以为多个域A记录提供相同的弹性IP,并让Apache在您的EC2实例中解析此问题.

这需要一些摆弄和实验,因为在细节上有很多相互矛盾的建议.我使用了ami-ad36fbc4实例图像(美国东部,64位EBS支持的Ubuntu 10.04 LTS),因为我熟悉Ubuntu,Ubuntu有很多在线帮助,这个图像将支持多年.我编辑/etc/apache2/httpd.conf了内容

NameVirtualHost *

<VirtualHost *>
ServerName first.net
Redirect permanent / http://www.first.net/
</VirtualHost>

<VirtualHost *>
ServerName second.net
Redirect permanent / http://www.second.net/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

然后使用检查错误

sudo /usr/sbin/apache2ctl configtest
Run Code Online (Sandbox Code Playgroud)

然后使用重新启动Apache服务器

sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)

Apache是​​Linux风格的标准,但文件位置等细节可能会有所不同,例如/etc/apache2/httpd.conf可能/etc/httpd.conf.例如,它可能需要把Listen 80httpd.conf,但是Apache抛出一个错误,如果该命令已经在别处.因此,请仔细阅读网页说明,并准备向Google发送任何错误消息.

由于我已经使用亚马逊Route 53进行了几天的指示wwwizer.com,所以当我更新Route 53以指向我的弹性IP时,这立即起作用.在切换到Route 53之前,每次更改都需要花费数天的时间来验证,因为信息在网络上传播.一旦每个人都知道要关注亚马逊,亚马逊就可以更快地传播其内部变化.