2013-05-05 96 views
3

我正在尝试为我的EC2实例配置虚拟主机。我在我的EC2实例上使用ubuntu,在服务器上使用apache2。如何在AWS EC2上配置多个虚拟主机运行Ubuntu?

我有3个应用程序(基于Web)的在/ var/WWW 3个不同的文件夹: - 在/ 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)。

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

请告诉我如何正确设置一个虚拟主机,这样我就可以达到我上面写的目的。

回答

5

这很简单,因为你已经安装了apache,你将能够看到一个名为/etc/apache2/sites-enabled/000-default的文件,它指向var内的www文件夹。这个想法是,阿帕奇将其作为主要的配置文件,因此,你需要这样您就可以定义为许多.conf文件,你可能希望有这样的事情:

/etc/apache2/sites-enabled/ 
├── 000-default -> ../sites-available/default 
└── subsystems 
    └── appA.conf 
    └── appB.conf 
    └── appMyWebSite.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 [email protected] 
    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为您的所有域)

希望这会有所帮助。

+0

谢谢。这有助于。 – reflyh2 2013-05-18 16:29:47

+1

我认为这个答案遗漏了最后一个关键步骤,创建一个符号链接,从'sites-enabled'启动到'sites-available'中定义的任何新网站。无论如何,我必须这样做。 – cdmo 2014-01-27 15:17:12

+0

@cdmo或者,如果可用,使用“a2ensite”命令,该命令为您设置符号链接,并可能执行一小部分错误检查。 – Desty 2014-07-16 14:24:54

相关问题