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

Что я делаю неправильно?

Спасибо заранее!

2 ответа

Решение

Ваш 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-адресом будет использоваться сервер по умолчанию из этого списка. У вас могут быть загружены другие конфигурации Vhost, которые используются.

Кроме того, имя_сервера должно быть полным доменным именем вашего сервера, а не IP-адресом. Чтобы увидеть текущее полное доменное имя, используйте hostname --fqdn,

Другие вопросы по тегам