da25443f

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


Идентификация по имени имеет существенное преимущество перед идентификацией по IP-адресу: вы не ограничены количеством адресов, имеющемся у вас в распоряжении. Вы можете использовать любое количество виртуальных серверов и при этом вам не потребуются дополнительные адреса. Такое возможно благодаря использованию протокола HTTP/1.1. Данный протокол поддерживается всеми современными броузерами.

Поддержка виртуальных хостов обеспечивается директивами VirtualHost и NameVirtualHost. Если ваша система имеет только один IP-адрес, его нужно указать в директиве VirtualHost. Внутри блока директивы VirtualHost записывается директива ServerName. Эта директива задает доменное имя для нашего виртуального сервера. Это обязательно нужно сделать, чтобы избежать поиска службой DNS - мы же не хотим, чтобы при неудачном поиске виртуальный сервер был заблокирован? Все директивы VirtualHost используют один и тот же IP-адрес, заданный директивой NameVirtualHost. В блоке VirtualHost записываются параметры виртуального сервера, причем они записываются для каждого виртуального сервера отдельно.

Пример 1.1. Создадим два виртуальных сервера - www и lib ServerName den.dhsilabs.com

<NameVirtulaHost 192.168.1.1>

<VirtualHost 192.168.1.1> ServerName www.dhsilabs.com ServerAdmin webmaster@den.dhsilabs.com DocumentRoot /var/httpd/www/html ErrorLog /var/https/www/logs/error.log TransferLog logs/access.log </VirtualHost>

<VirtualHost 192.168.1.1> ServerName lib.dhsilabs.com ServerAdmin webmaster@den.dhsilabs.com DocumentRoot /var/httpd/lib/html ErrorLog /var/https/lib/logs/error.log TransferLog logs/access.log </VirtualHost>

Если ваша система имеет только один IP-адрес, доступ к основному серверу станет невозможным, то есть вы не сможете использовать его напрямую. Можно основной сервер использовать в качестве виртуального, что я и сделал в примере 1.1.: основной сервер www является виртуальным. При наличии двух IP-адресов можно один присвоить основному серверу, а другой - виртуальным.

Apache позволяет использовать несколько доменных имен для доступа к одному серверу: ServerAlias www.dhsilabs.com www2.dhsilabs.com

Запросы, посланные по IP-адресам, которые присвоены нашим виртуальным хостам, должны соответствовать одному из указанных доменных имен. Чтобы зафиксировать запросы, не соответствующие ни одному их этих имен, нужно с помощью опции default:* создать виртуальный хост, который будет обслуживать такие запросы: <VitrualHost _default_:*>

Обратите внимание на то, что адреса www.dhsilabs.com и lib.dhsilabs.com должны быть прописаны в DNS



Содержание раздела