У меня есть сервер 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 (не уверен), но конфигурация, которую я перечислил в своем первоначальном вопросе, начала работать.