我正在尝试为我的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_A和http://my.ip.address/app_B一样。至于/ var / ww / mywebsite中的应用程序,我希望人们能够通过我的域mywebsite.com访问它。我将域名指向我的EC2 IP地址(my.ip.address)。
我知道我必须创建虚拟主机才能实现这一点,但我真的很陌生。我一直试图谷歌解决方案,并尝试了几种解决方案但仍然失败。
请告诉我如何正确设置虚拟主机,以便达到上述目的。
答案 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)处理该域名。
希望这有帮助。