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

Диагностика субдомена «сервер не найден»: с чего начать?

У меня странная проблема. Я быстро расскажу о настройке:

DNS

Ниже приведены A-записи, указывающие на один и тот же IP-адрес:

Я пробовал использовать CNAME для поддоменов, но это ничего не изменило.

Настройка Apache 2

У меня два виртуальных хоста:

<VirtualHost *:80>
  ServerName domain.com
  ServerAlias www.domain.com
  DocumentRoot /var/www/a
  [...log setup]
</VirtualHost>

и

<VirtualHost *:80>
  ServerName dev.domain.com
  DocumentRoot /var/www/b
  [...log setup]
</VirtualHost>

Обратите внимание, что для login.domain.com не настроен хост.

Проблема

Теперь к проблеме. Когда я вхожу на dev.domain.com, он говорит, что сервер не найден мгновенно. Пробовали очистить кеш и все такое на нескольких компьютерах. www.domain.com и domain.com обслуживаются из правильного каталога. login.domain.com по какой-то причине перенаправляет на domain.com.

Приведенная выше конфигурация - единственная, для которой разрешено использование сайтов, но она также загружает конфигурацию из phpmyadmin.

Я думаю, что я спрашиваю, как мне начать диагностику проблемы? Как я могу решить проблему с DNS? Я попытался добавить dev.domain.com в качестве сервера в текущую конфигурацию - ничего не изменилось. И я понятия не имею, почему login.domain.com перенаправляет - насколько я могу судить, подстановочных знаков нигде нет.

С чего мне начать?

Когда кто-то запрашивает несуществующее доменное имя, ответ о том, что оно не существует (NXDOMAIN), кэшируется на промежуточных DNS-серверах.

Возможно, для dev.domain.com отрицательный ответ был где-то в кеше.

Чтобы проверить, попробуйте

1. nslookup dev.domain.com (or dig dev.domain.com)
2. nslookup dev.domain.com ns1.domain.com (or dig @ns1.domain.com dev.domain.com)

Если это так, вы получите отрицательный ответ в 1. и ваш IP в 2.

Нет другого решения - ждать времени, указанного в последнем поле вашей записи SOA (nslookup -type = SOA domain.com или dig domain.com SOA). Чтобы предотвратить это в будущем, установите меньшее значение.

Что касается login.domain.com - он возвращается к первому определенному VirtualHost. Это нормальное поведение.

(Я согласен, что если вы разместите реальное доменное имя, это сделает нашу жизнь лучше)

Я думаю, что я спрашиваю, как мне начать диагностику проблемы? Как я могу решить проблему с DNS?

  1. В случае нескольких виртуальных хостов в Apache, первый виртуальный хост служит резервным вариантом для всех хостов-запросов, которые не найдены в списках хостов, но достигают сервера из-за конфигурации DNS (или других методов), это явно нормально для вашего несуществующего виртуального хоста
  2. Никогда, никогда маскировать домен в случае проблем, связанных с доменом - таким образом вы гарантированно заставите всех, кто интересуется ответом, угадать, вместо тестирования и отладки.
  3. Для меня "dev.domain.com" вполне допустим, согласно вашей цитате, но я предпочитаю проверить его в реальной жизни.
  4. Дикие догадки - dev.domain.com может каким-то образом разрешить неправильный IP, без http-сервера на нем. Как проверить
    • nslookup dev.domain.com, проверьте IP-of-dev.domain.com
    • traceroute IP-of-dev.domain.com ИЛИ traceroute dev.domain.com
    • telnet dev.domain.com 80 и выполнить самый короткий http-сеанс, если подключен или используется wget dev.domain.com/index.file для мониторинга действий http-клиента с помощью site dev