5

我正在尝试为我的 EC2 实例配置一个虚拟主机。我在我的 EC2 实例和 apache2 上使用 ubuntu 作为 Web 服务器。

我在 /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)。

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

请告诉我如何正确设置虚拟主机,以便实现上面写的目的。

4

1 回答 1

10

这很简单,因为您已经安装了 apache,您将能够看到一个名为:的文件/etc/apache2/sites-enabled/000-default,它指向您wwwvar. 这个想法是 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)

希望这可以帮助。

于 2013-05-06T13:34:28.787 回答