Итак, переменные первых двух секций файла
httpd.conf настраивают Apache для работы с одним хостом. Рассматриваемые в этой части статьи переменные конфигурирования виртуальных хостов позволяют настроить сервер Apache для поддержки нескольких доменных имен и нескольких IP-адресов, то есть для работы сразу с несколькими хостами. Название "виртуальные" здесь употребляется в том смысле, что физически все хосты, конфигурируемые в данной секции, будут расположены на одном сервере, хотя для конечных польователей они будут представлять различные доменные имена с различными IP-адресами.
Но прежде чем описывать назначения тех или иных параметров в этой секции надо сказать, что виртуальные хосты на сервере Apache могут быть двух типов:
name-based и
IP-based, то есть в переводе на русский это звучит примерно так: виртуальные хосты, основанные на доменном имени, и виртуальные хосты, основанные на IP-адресе. Использование
name-based хостов означает, что создаваемые таким способом хосты будут иметь один IP-адрес, но разные имена, тогда как для
IP-based хостов необходимо, чтобы каждый хост имел свой собственный IP-адрес. В зависимости от той или иной ситуации могут быть причины для использования как одного, так и другого типа виртуальных хостов.
IP-based Virtual Hosts
Итак, в случае использования
IP-based хостов Вы можете поддерживать несколько сайтов на одном сервере, и каждый из размещенных на этом сервере сайтов будет иметь свой собственный IP-адрес. Здесь все упирается в проблему назначения нужного количества IP-адресов на одну машину. Большинство современных операционных систем позволяют назначать столько IP-адресов на одну машину, сколько Вам угодно. В каждом случае, в зависимости от типа используемой ОС, назначение нескольких IP-адресов одной машине может иметь свои специфические особенности, поэтому здесь мы этот процесс подробно рассматривать не будем, а лишь заметим, что на некоторых операционных системах для назначения нескольких IP-адресов на одну машину требуется иметь на такой машине и несколько сетевых карт (по одной на каждый адрес).
Назначив машине несколько IP-адресов надо не забыть сопоставить на используемом в сети DNS-сервере каждому из назначенных адресов свое доменное имя. В случае, если этого не сделать, то компьютеры пользователей смогут обнаружить установленные на Вашем сервере виртуальные хосты только по IP-адресу, а не по имени хоста. Правда, в некоторых случаях можно обойтись и без DNS-сервера.
Конфигурирование
IP-based виртуальных хостов в файле httpd.conf осуществляется следующим образом:
<VirtualHost hostname1>
DocumentRoot /home/hostname1/www
ServerName hostname1
ErrorLog /home/hostname1/error_log
TransferLog /home/hostname1/access_log
</VirtualHost>
<VirtualHost name2.mydomain.com>
ServerAdmin webmaster@name2.mydomain.com
DocumentRoot /usr/local/apache/name2_www
ServerName name2.mydomain.com
ServerAlias name2
</VirtualHost>
<VirtualHost name3.mydomain.com>
DocumentRoot /usr/local/apache/name3_www
ServerName name3.mydomain.com
ScriptAlias /use/local/apache/name3_cgi
</VirtualHost>
#
NameVirtualHost *