Назад | Перейти на главную страницу

Несколько именованных виртуальных хостов Apache 2 с одним виртуальным IP-адресом

У меня есть экземпляр, работающий на 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.