Linux. Полное руководство.

16.9.2. Виртуальные серверы с идентификацией по IP-адресу.

В директиве VirtualHost в качестве адресов можно использовать доменные имена, но лучше указывать IP-адрес, причем действительный, а не виртуальный. В этом случае вы не будете зависеть от DNS при разрешении имени. Также потребуется один IP-адрес для вашего основного сервера. Если же распределить все адреса между виртуальными серверами, то нельзя будет получить доступ к основному серверу.

Листинг 16.11. Идентификация по IP-адресу.

<VirtualHost 192.168.1.2>

 ServerName www.dhsilabs.com.

 ServerAdmin webmaster@den.dhsilabs.com.

 DocumentRoot /var/httpd/www/html.

 ErrorLog /var/https/www/logs/error.log.

</VirtualHost>

<VirtualHost lib.dhsilabs.com>

 ServerName lib.dhsilabs.com.

 ServerAdmin webmaster@den.dhsilabs.com.

 DocumentRoot /var/httpd/lib/html.

 ErrorLog /var/https/lib/logs/error.log.

</VirtualHost>

При конфигурировании виртуальных серверов можно использовать опцию ExecCGI, которая разрешает выполнение CGI-сценариев на виртуальном сервере. Листинги 16.12 и 16.13 демонстрируют настройку почтового веб-интерфейса.

Листинг 16.12. Файл httpd.conf.

<Directory /home/httpd/mail>

Order deny,allow.

Deny from all.

Allow from localhost.

Allow from 192.168.

Allow from 123.123.123.123.

Options ExecCGI.

</Directory>

Листинг 16.13. Файл vhosts.conf.

<VirtualHost 123.123.123.123>

 ServerAdmin webmaster@den.dhsilabs.com.

 DocumentRoot /home/httpd/mail.

 ServerPath /mail.

 ServerName wwwmail.dhsilabs.com.

 ErrorLog logs/error_log.

 TransferLog logs/access_log.

 # Error 403 - ошибка доступа извне, то есть почтовый.

 # интерфейс будет доступен только из локальной сети.

 ErrorDocument 403 http://www.dhsilabs.com/messages/error403.html.

</VirtualHost>