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

ref*_*yh2 4 ubuntu apache2 virtualhost amazon-ec2

我正在尝试为我的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).

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

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

Mes*_*dón 8

这很简单,因为你已经安装了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
Run Code Online (Sandbox Code Playgroud)

因此,它更易于处理,因为您可以根据需要将所有内容分段为多个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>
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助.

  • 我认为这个答案遗漏了最后一个关键步骤,即创建一个从“sites-enabled”到“sites-available”中定义的任何新站点的符号链接。无论如何我都必须这么做。 (2认同)