使用EC2实例将AWS Route 53 Zone Apex重定向到AWS S3

时间:2012-07-25 08:51:32

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

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

我想将此域名重定向到AWS S3 Bucket(最终是Cloudfront分发版),但AWS Route 53不允许我将CNAME记录添加为顶点区域。

我知道有一个名为http://arecord.net的服务看起来像我需要的那样(给我一个映射到CNAME的IP地址),但我有一整套可完全自定义的EC2实例。处理所以我想自己做点什么。

我的问题是,如何最好地构建一个非常精简的EC2实例,接收请求并简单地重定向到S3存储桶上的等效URL。

我是一个Windows用户,所以在IIS中做得更好,但如果Apache以更好的性能完成同样的工作,我很乐意这样做。

感谢。

2 个答案:

答案 0 :(得分:1)

这对我有用:

鉴于Route 53中的这条记录:

www.foobles.com CNAME foobles.herokuapp.com 

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

  1. 我用Ubuntu 12.04创建了一个EC2微实例并将其链接到一个弹性IP,让我们 说11.55.21.22。然后我为foobles.com

    设置了A记录

    foobles.com A 11.55.21.22

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

    (来自我的本地机器)

    ssh -i ~/.ssh/cert.pem ubuntu@foobles.com
    

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

    sudo apt-get install apache2
    
  3. 我创建了重写规则

    sudo touch /etc/apache2/sites-available/foobles_zone_apex
    

    并在其中加入以下规则:

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

    sudo a2enmod rewrite
    
  5. 并启用了网站

    sudo a2ensite foobles_zone_apex
    
  6. 最后,删除了默认主机

    sudo a2dissite default
    
  7. 并且瞧

    sudo service apache2 reload
    
  8. 如果一切顺利,你应该能够做到这一点:

    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>
    

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

答案 1 :(得分:1)

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

支持这已经在Amazon S3中实现,因此您现在也可以在S3中托管区域顶点 - 请参阅http://aws.typepad.com/aws/2012/12/root-domain-website-hosting-for-amazon-s3.html