如何在运行Ubuntu的AWS EC2上配置多个虚拟主机?

时间:2013-05-05 18:49:41

标签: ubuntu amazon-ec2 apache2 virtualhost

我正在尝试为我的EC2实例配置虚拟主机。我在我的EC2实例上使用ubuntu,在web服务器上使用apache2。

我在/ var / www中的3个不同文件夹中有3个应用程序(基于Web): - / var / www / app_A - / var / www / app_B - / var / www / mywebsite

我希望人们只能使用IP地址(我已将弹性IP附加到我的EC2实例)访问app_A和app_B,如同http://my.ip.address/app_Ahttp://my.ip.address/app_B一样。至于/ var / ww / mywebsite中的应用程序,我希望人们能够通过我的域mywebsite.com访问它。我将域名指向我的EC2 IP地址(my.ip.address)。

我知道我必须创建虚拟主机才能实现这一点,但我真的很陌生。我一直试图谷歌解决方案,并尝试了几种解决方案但仍然失败。

请告诉我如何正确设置虚拟主机,以便达到上述目的。

1 个答案:

答案 0 :(得分:7)

这很简单,因为你已经安装了apache,你将能够看到一个名为/etc/apache2/sites-enabled/000-default的文件,该文件指向www内的var文件夹。这个想法是apache将它作为主配置文件,因此你可以根据需要定义尽可能多的.conf文件,你可能想要这样的东西:

/etc/apache2/sites-enabled/
├── 000-default -> ../sites-available/default
└── subsystems
    └── appA.conf
    └── appB.conf
    └── appMyWebSite.conf

所以它更易于处理,因为您可以将所有内容分段为多个conf文件,并根据需要进行操作。

现在,那些必须拥有什么?这取决于你需要什么,但这几乎是你需要的:

<Directory "/var/www/mywebsite.com/">
    Options Indexes Includes FollowSymLinks MultiViews +ExecCGI
    AddHandler cgi-script cgi pl
    AllowOverride All
    Order allow,deny
    Allow from all
    DirectoryIndex index.cgi index.html
</Directory>

<VirtualHost *:80>
    ServerName mywebsite.com
    ServerAdmin youremail@provider.com
    SetEnv VAR_IF_YOU_NEED_ONE VALUE
    RewriteEngine on

    DocumentRoot "/var/www/mywebsite.com/"

    LogLevel warn
    ServerSignature Off

    #And whatever you need take a look to apache documentation
</VirtualHost>

因此,您可以将您的域名指向相同的服务器IP地址,并且apache将根据这些域的名称(即所有域的相同IP)处理该域名。

希望这有帮助。