Как добавить второй виртуальный хост в конфигурацию сервера Apache?

Как добавить второй виртуальный хост в конфигурацию сервера Apache?

У меня есть сервер Apache, работающий на экземпляре AWS EC2. В настоящее время один виртуальный хост успешно работает на сервере, и я хочу добавить второй виртуальный хост/домен, но не могу понять, как это сделать.

Анонимизируя данные, вот исходная информация, которую я добавил, httpd.confчтобы запустить первый виртуальный хост:

<Directory "/var/www/site-1/public">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<VirtualHost *:80>
    DocumentRoot "/var/www/site-1/public"
    ServerName "site-1.com"
    ServerAlias "*.site-1.com"
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =site-1.com [OR]
    RewriteCond %{SERVER_NAME} =*.site-1.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Затем я зарегистрировал в Google Domains следующее site-1(с поддельным IP-адресом):

Host name     Type  TTL      Data
site-1.com    A     1 hour   4.184.56.145
*.site-1.com  A     1 hour   4.184.56.145

Затем я использовал Certbot для добавления SSL-сертификата, который добавил следующую строку httpd.confи ACME-вызов в настройки DNS Google Domains:

Include /etc/httpd/conf/httpd-le-ssl.conf

Все работает отлично. Затем я купил второй домен ( site-2.com), и сейчас я просто пытаюсь запустить виртуальный хост с помощью очень простого index.htmlфайла в корне каталога сайта (т. е. /var/www/site-2).

Для этого я добавил следующее в самый низ httpd.conf:

<Directory "/var/www/site-2">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<VirtualHost *:80>
    DocumentRoot "/var/www/site-2"
    ServerName "site-2.com"
</VirtualHost>

А в Google Domains были добавлены следующие настройки DNS для site-2:

Host name     Type  TTL      Data
site-2.com    A     1 hour   4.184.56.145

Прошло несколько часов с тех пор, как все эти настройки были добавлены для site-2, и я перезапускал сервер Apache несколько раз с sudo systemctl restart httpd. Однако, когда я захожу на site-2.com, я получаю следующую страницу, которая не является образцом index.htmlфайла, который я разместил под /var/www/site-2:

введите описание изображения здесь

Также стоит отметить, что favicon для site-2на самом деле является favicon для site-1. Не уверен, почему. Кроме того, права доступа к каталогу/файлу/владение для site-2такие же, как и для site-1.

Может ли кто-нибудь подсказать, почему это не работает? Если честно, после довольно долгих исследований я подумал, что мне нужно добавить следующую строку в httpd.conf, но это не помогло и я перезапустил сервер:

NameVirtualHost *:80

Редактировать: Я только что понял кое-что. По какой-то причине site-2указывает на var/www/htmlкаталог. Если я помещаю файл-образец index.htmlв этот каталог, то он загружается правильно, когда я захожу на site-2.com. Почему так? Почему следующий блок виртуального хоста не работает?

<VirtualHost *:80>
    DocumentRoot "/var/www/site-2"
    ServerName "site-2.com"
</VirtualHost>

решение1

Честно говоря, не знаю, в чем дело, но это только что начало работать. Возможно, это была проблема распространения DNS (не уверен), но конфигурация, которую я перечислил в своем первоначальном вопросе, начала работать.

Связанный контент