Amazon web services 使用EC2实例将AWS Route 53区域顶点重定向到AWS S3

Amazon web services 使用EC2实例将AWS Route 53区域顶点重定向到AWS S3,amazon-web-services,dns,amazon-route53,Amazon Web Services,Dns,Amazon Route53,我有一个裸域,我计划使用二维码(因此希望尽可能短-例如qrc.me) 我想将这个域名重定向到AWS S3 Bucket(最终是Cloudfront发行版),但AWS Route 53不允许我添加CNAME记录作为apex区域 我知道有一个名为的服务,它看起来可以满足我的需要(给我一个IP地址,它将映射到CNAME),但我有一个完全可定制的EC2实例的完整池供我使用,所以我想自己做一些事情 那么,我的问题是,如何最好地构建一个运行真正精简的EC2实例,接收请求并简单地重定向到S3 bucket上的

我有一个裸域,我计划使用二维码(因此希望尽可能短-例如qrc.me)

我想将这个域名重定向到AWS S3 Bucket(最终是Cloudfront发行版),但AWS Route 53不允许我添加CNAME记录作为apex区域

我知道有一个名为的服务,它看起来可以满足我的需要(给我一个IP地址,它将映射到CNAME),但我有一个完全可定制的EC2实例的完整池供我使用,所以我想自己做一些事情

那么,我的问题是,如何最好地构建一个运行真正精简的EC2实例,接收请求并简单地重定向到S3 bucket上的等效URL

我是一个Windows操作系统的人,所以我在IIS方面做得更好,但是如果Apache以更好的性能做同样的工作,我很乐意这样做


谢谢。

以下是对我有效的方法:

鉴于53号干线的这一记录:

www.foobles.com CNAME foobles.herokuapp.com 
我想输入“foobles.com”并被重定向到“www.foobles.com”

  • 我用Ubuntu12.04创建了一个EC2微实例,并将其链接到一个弹性IP,让我们来看看 说
    11.55.21.22
    。然后我为
    foobles.com
    创造了一个A记录

    foobles.com A 11.55.21.22

  • 我设置了一个基本的Apache服务器:

    (从我的本地机器)

    (从这里开始,所有命令都在foobles服务器上)

  • 我创建了一个重写规则

    sudo touch /etc/apache2/sites-available/foobles_zone_apex
    
    sudo a2ensite foobles_zone_apex
    
    并在其中加入以下规则:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1
    
  • 我启用了apache2重写模块

    sudo a2enmod rewrite
    
  • 并启用了站点

    sudo touch /etc/apache2/sites-available/foobles_zone_apex
    
    sudo a2ensite foobles_zone_apex
    
  • 最后,删除了默认主机

    sudo a2dissite default
    
  • sudo service apache2 reload
    
  • 如果一切顺利,您应该能够做到:

    curl localhost/blargh
    
    看看这个:

    <html><head>
    <title>302 Found</title>
    </head><body>
    <h1>Found</h1>
    <p>The document has moved <a href="http://www.localhost//blargh">here</a>.</p>
    <hr>
    <address>Apache/2.2.22 (Ubuntu) Server at localhost Port 80</address>
    </body></html>
    
    
    302发现
    建立
    文档已移动


    本地主机端口80上的Apache/2.2.22(Ubuntu)服务器

    这似乎相当快,即使是在一个微型实例上。不过,我不会太公开这个URL,因此在您的情况下,您必须进行性能测试或将其移动到一个更大的实例上。

    作为记录,由于这篇文章在搜索结果中显示得相当高,让我添加一个更新:

    对此的支持已经在AmazonS3中实现,因此您现在也可以在S3中托管zone apex-参见