1

我有一个裸域,我打算与 QR 码一起使用(因此希望尽可能短 - 例如 qrc.me

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

我知道有一个名为http://arecord.net的服务,它看起来可以满足我的需求(给我一个 IP 地址,它将映射到 CNAME),但我有一个完整的完全可定制的 EC2 实例池供我使用所以我想自己做点什么。

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

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

谢谢。

4

2 回答 2

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

    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
    

如果一切顺利,您应该可以这样做:

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,因此在您的情况下,您必须进行性能测试或将其移至更大的实例。

于 2012-09-29T22:52:49.413 回答
1

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

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

于 2014-05-22T22:34:48.883 回答