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

Проблема с DNS и поддоменами

У меня Apache работает на сервере Ubuntu (14.04). Я настроил записи DNS A и VH, чтобы иметь один домен и два поддомена, вот так:

  • example.com
  • subdomain1.example.com
  • subdomain2.example.com

Все работает нормально, но проблема в том, что когда я пытаюсь получить доступ к своему веб-сайту с IP-адреса сервера, браузер показывает содержимое subdomain1.example.com вместо содержимого example.com. Этого не произойдет, если я наберу example.com, в этом случае все будет хорошо, но я беспокоюсь, может ли это стать проблемой в будущем или я что-то сделал не так ...

Вот моя конфигурация Apache VH для example.com и subdomain1.example.com (subdomain2 точно такой же, как subdomain1):

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin contact@example.com
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost>

<VirtualHost *:80>
    ServerName subdomain1.example.com
    ServerAdmin contact@example.com
    DocumentRoot /var/www/subdomain1

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost>

Надеюсь, я хорошо объяснил ... Спасибо!

Из Документы Apache

Когда запрос получен, сервер сначала сопоставляет его с наилучшим соответствием только на основе локального IP-адреса и комбинации порта. Не-подстановочные знаки имеют более высокий приоритет. Если совпадения по IP и порту не происходит, используется «основная» конфигурация сервера.

Если несколько виртуальных хостов содержат наиболее подходящий IP-адрес и порт, сервер выбирает из этих виртуальных хостов наилучшее совпадение на основе запрошенного имени хоста. Если соответствующий виртуальный хост на основе имени не найден, будет использоваться первый виртуальный хост в списке, который соответствует IP-адресу. Как следствие, первый виртуальный хост в списке для данной комбинации IP-адреса и порта является виртуальным хостом по умолчанию для этой комбинации IP-адреса и порта.

Это в основном означает, что первый VirtualHost, обнаруженный в httpd.conf будет использоваться по умолчанию, или если все виртуальные хосты находятся в отдельных (включены) .conf файлы (что, вероятно, ваш случай), затем сначала по алфавиту .conf файл будет использоваться.

TL; DR: попробуйте переименовать .conf файл, содержащий example.com Виртуальный хост для aaa.conf (и перезапустите httpd)