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
,