Как настроить несколько виртуальных хостов на AWS EC2 Запуск Ubuntu?

Я пытаюсь настроить виртуальный хост на свой экземпляр EC2. Я использую ubuntu на своем экземпляре EC2 и apache2 в качестве веб-сервера.

У меня есть 3 приложения (в Интернете) в 3 разных папках в /var/www: -/var/www/app_A -/var/www/app_B -/var/www/mywebsite

Я хочу, чтобы люди имели доступ только к приложениям_A и app_B, используя IP-адрес (я подключил эластичный IP к моему экземпляру EC2), как в http://my.ip.address/app_A и http://my.ip.address/app_B. Что касается приложения в /var/ww/mywebsite, я хочу, чтобы люди имели доступ к этому через мой домен mywebsite.com. Я указываю домен на свой IP-адрес EC2 (my.ip.address).

Я знаю, что мне нужно создавать виртуальные хосты, чтобы иметь возможность этого достичь, но я действительно новичок в этом. Я пытаюсь решить это решение и попробовал несколько решений, но продолжаю терпеть неудачу.

Скажите, пожалуйста, как правильно настроить виртуальный хост, чтобы я мог достичь своей цели, указанной выше.

Ответ 1

Это довольно просто, поскольку у вас уже установлен 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 [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 для всех ваших доменов)

Надеюсь, что это поможет.