что заставляет доменные имена указывать на определенную папку?

#apache #dns #httpd.conf

#apache #dns #httpd.conf

Вопрос:

я работаю на сервере, который я унаследовал от кого-то, и я не большой эксперт по вопросам dns. на сервере размещено более одного домена, и все они находятся в папке с именем /vhosts/ . кажется, я не могу понять, как домены указывают на соответствующую папку там. я проверил httpd.config, и такой директивы нет:

 <VirtualHost *>
ServerName www.domain.tld
DocumentRoot /www/domain
</VirtualHost>
  

я также проверил администратора домена, и все они указывают на IP-адрес сервера. итак, что я упускаю?

Ответ №1:

DocumentRoot это директива, которая указывает имя папки для определенного размещенного домена. Для каждого домена, размещенного на сервере, в файле будет один <VirtualHost> узел httpd.conf . Так, например, example1.com и example2.com размещаются на этом сервере, и их запросы обслуживаются из /vhosts/www/example1 и /vhosts/www/example2 соответственно.

 <VirtualHost *>
DocumentRoot /vhosts/www/example1
ServerName www.example1.com
# Other directives here
</VirtualHost>

<VirtualHost *>
DocumentRoot /vhosts/www/example2
ServerName www.example2.org
# Other directives here
</VirtualHost>
  

Иногда эти настройки определяются в других файлах конфигурации. Другие файлы конфигурации включаются в httpd.conf во время запуска. Если вы не можете найти файл, в котором он есть, я бы посоветовал вам запустить

grep -ri "VirtualHost" / .

Комментарии:

1. СВЯТОЕ Дерьмо, это то, что я ищу, БОЛЬШОЕ СПАСИБО, приятель! :B

Ответ №2:

Система может быть настроена для массового виртуального хостинга:

С другой стороны, конфигурации для виртуальных хостов могут быть объявлены во включенных файлах, введенных с помощью инструкции Include . Проверьте httpd.config инструкции for Include для других виртуальных хостов …

если все остальное не удается, перейдите в корень каталога конфигурации и выполните следующее:

  sudo grep -Ri www.domain.tld . 
  

Должно дать вам подсказку, где искать…