У меня есть экземпляр, работающий на AWS, с Apache 2, двумя именованными доменами и одним IP.
Мне удалось настроить apache с обоими доменами (domain1.com и domain2.com). Корневой каталог первого домена указывает на /var/www/html/vh/domain1.com Корневой каталог второго домена указывает на /var/www/html/vh/domain2.com
Хорошо.
Проблема в том, что я хочу получить доступ к / var / www / html по IP прямо в браузере.
Когда я пытаюсь это сделать, я размещаю сайт на domain1.com.
Как мне это сделать??
Соответствующие строки из httpd.conf:
ServerName 9.9.9.9:80
DocumentRoot "/var/www/html"
NameVirtualHost *:80
<VirtualHost 9.9.9.9:80>
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost 9.9.9.9:80>
DocumentRoot /var/www/html/vh/domain1.com
ServerName domain1.com
DirectoryIndex index.php
</VirtualHost>
<VirtualHost 9.9.9.9:80>
DocumentRoot /var/www/html/vh/domain2.com
ServerName domain2.com
DirectoryIndex index.php
</VirtualHost>
Если я попытаюсь получить доступ:
http://9.9.9.9
Я получаю страницы в /var/www/html/vh/domain1.com вместо страниц, размещенных в / var / www / html
Что я делаю не так?
Спасибо заранее!
Ваш NameVirtualHost
и <VirtualHost>
директивы должны совпадать. Это означает, что вы должны либо изменить
NameVirtualHost *:80
к
NameVirtualHost 9.9.9.9:80
или изменить каждый
<VirtualHost 9.9.9.9:80>
к
<VirtualHost *:80>
Кроме того, я бы рекомендовал, чтобы виртуальный хост по умолчанию имел фактическое имя хоста сервера как ServerName
вместо IP-адреса. Поскольку он будет использоваться по умолчанию, он все равно будет выбран, когда вы подключаетесь с использованием только IP-адреса.
Вы можете проверить, как apache интерпретирует вашу конфигурацию, с помощью команды apache2ctl -S
. В нем перечислены все vhosts и их порядок, в котором они сейчас используются apache. При доступе к серверу с IP-адресом сервер по умолчанию из этого списка будет использоваться. У вас могут быть загружены другие используемые конфигурации виртуального хоста.
Также ServerName должно быть полным доменным именем вашего сервера, а не IP-адресом. Чтобы увидеть текущее полное доменное имя, используйте hostname --fqdn
.