AWS-EC2,如何仅使用一个实例设置多个公共站点?

Posted

技术标签:

【中文标题】AWS-EC2,如何仅使用一个实例设置多个公共站点?【英文标题】:AWS-EC2, how to set multiple public sites with just one instance? 【发布时间】:2013-06-08 14:36:26 【问题描述】:

我已经阅读了很多关于 SO 的文章和主题,但找不到任何进一步的帮助。

我有一个 AWS-EC2 实例,并希望在其中拥有几个公共站点。

我已经让我的第一个公共网站运行如下:http://ec2-50-xxx-214-xxx.us-west-2.compute.amazonaws.com/

我所做的只是在/etc/apache2/sites-available

下添加了一个名为manmu的文件
<VirtualHost *:80>
    ServerName ec2-50-xxx-214-xxx.us-west-2.compute.amazonaws.com
    DocumentRoot /home/ubuntu/manmu/YYYYY/web
    DirectoryIndex index.php
</VirtualHost>

然后ubuntu@ip-10-245-38-136:/etc/apache2/sites-enabled$ ln -s ../sites-available/manmu

但是我怎样才能让我的其他网站运行呢? 例如,我可能想要一些子域,例如:http://abc.ec2-50-xxx-214-xxx.us-west-2.compute.amazonaws.com/ 等等。

而且,我可以让我的本地机器运行多个站点(我的意思是 url),例如:http://abc.manmu.localhosthttp://def.manmu.localhost 我正在使用 /etc/hosts 和 /etc/apache2/site-availables(和 ../site-enabled)。 但我真的不知道如何配置 AWS 以公开访问多个 url。

我刚刚听到类似 Elastic IP 之类的东西,这对实际域名有帮助吗?

谢谢。 最好的问候, tech_me

【问题讨论】:

【参考方案1】:

您可以将多个辅助 IP 地址添加到 VPC 内的 EC2 实例 - 请参阅此处:http://aws.typepad.com/aws/2012/07/multiple-ip-addresses-for-ec2-instances-in-a-virtual-private-cloud.html

然后您可以将公共弹性 IP 地址附加到这些私有 IP。请参阅此处的说明:http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-ip-addressing.html#WorkWithEIPs

然后您可以使用 Route 53(或其他 DNS 服务)将您的 URL 指向您网站的 IP。这是 Route 53 入门的链接:http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/GetStarted.html

更新: 拥有多个 IP 后,您需要将域 URL 指向不同的 IP。使用 Route 53 作为分布式且高度可用的 DNS 服务,您可以添加这些记录。具体说明见文档:http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingNewDNS.html

【讨论】:

谢谢你,@Guy。我稍后会看看。 嗨,@Guy。关于前两个步骤我已经阅读并做了一些事情,但不知道如何使用关于 Route 53 的最后一个步骤。请您提供更多提示吗? 您希望多个域指向一组 IP,这些 IP 都连接到单个实例。 嗨,@Guy。几个星期以来,我一直忙于工作。今天回来用AWS,发现我连云都用不同的端口给不同的站点,而不是不同的域——也许这只是网络工程的基础知识^^;。无论如何,谢谢。 谢谢,它是免费的吗? (只有少数用户会访问我的公共域。)

以上是关于AWS-EC2,如何仅使用一个实例设置多个公共站点?的主要内容,如果未能解决你的问题,请参考以下文章

使用 EC2 时如何设置公共 URL

如何使用仅允许 HTTPS 连接的 nginx 和 uwsgi 在 ec2 实例中部署 django 站点?

AWS-EC2挂载EBS卷

AWS-EC2域名映射

Django上的多个站点

Django 上的多个站点