Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!diplom_Lazutin.doc
Скачиваний:
4
Добавлен:
27.10.2018
Размер:
672.77 Кб
Скачать

2.3.2 Настройка виртуальных хостов

Один сервер Apache может обслуживать запросы к нескольким сайтам (на одном компьютере можно запустить несколько серверов Apache, если это необходимо по требованиям безопасности - в этом случае можно задать отдельные User/Group). Описание каждого сайта заключается в секцию VirtualHost. Запросы, которые сервер не может соотнести ни с одной секцией VirtualHost, обслуживаются исходя из настроек главного сайта. Привязка сайта к виртуальному хосту может быть на основе IP адреса (возможно определение виртуального хоста со специальным именем "_default_", которое будет "перехватывать" на себя все неприкаянные запросы) или имени (работает только для клиентов, умеющих выдавать заголовок "Host:" в запросе). При использовании TLS/SSL нельзя использовать привязку по имени. Внутри секции может быть использована почти любая директива (буква V в описании) или секции DFL. Самая необходимая директива - DocumentRoot, которая задаёт привязку корневого локального URL к каталогу файловой системы. Обычно также используются директивы ServerAdmin, ServerName и задание отдельных журналов.

При виртуальном хостинге на основе IP адреса для определения нужного сайта (секции VirtualHost) используется IP адрес сервера (или порт), соответственно, каждый сайт должен иметь отдельный IP адрес. В заголовке секции рекомендуется указывать IP адрес (в любом случае, при разборе конфигурации доменное имя преобразуется в IP адрес).

При виртуальном хостинге на основе имени директива NameVirtualHost (в основной секции) привязывает виртуальный хост к указанному адресу/порту: запросы на этот адрес будут распределяться только между соответствующими виртуальными хостами; если NAT или proxy перебрасывает запросы снаружи на другой IP адрес, то в директиве необходимо указать новый адрес. В качестве адреса можно использовать шаблон ("*" или "*:80"). Для приёма запросов необходимо дополнительно использовать директиву Listen. Аргумент секции VirtualHost должен соответствовать аргументу NameVirtualHost. В секции VirtualHost необходимо обязательно указать ServerName и DocumentRoot. Директива ServerAlias позволяет задать дополнительные имена сайта для виртуального хоста.

При получении запроса сервер проверяет соответствует ли входящий адрес и порт упомянутым в директиве NameVirtualHost. Если соответствует, то он перебирает секции VirtualHost, в заголовках которых указан входящий адрес. В них он ищет ту секцию, в которой указана директива ServerName (или ServerAlias), соответствующая заголовку запроса "Host:". Если соответствия не найдено ("_default_" соответствует всегда), то используется первая попавшаяся секция.

Под нужды внутренней сети, состоящей из трех подсетей, мною были настроены три виртуальных хоста, на одном IP адресе привязанных по имени:

mcd.test1.ru

mcd.test2.ru

mcd.test3.ru

со стартовыми страницами index.html

Содержимое файла настроек для виртуальных хостов моего сервера (/conf/extra/ httpd-vhosts.conf) представлено в Приложении 2.

В случае расширения внутренней сети и внедрения новых сайтов для нужд пользователей этой сети существует возможность настроить дополнительные виртуальные хосты привязанные к другим IP адресам.

Для проверки работоспособности хостов наберем в браузере их адреса. На следующих рисунках показан результат запросов к серверу. На Рис. 2 показана стартовая страница основного сайта расположенного по адресу http://localhost/. Рис. 3 и Рис. 4 демонстрирует вход на хостинг http://mcd.test1.ru/. Рис. 6 и Рис. 7 демонстрирует вход на хостинг http://mcd.test3.ru/. На Рис. 5 показана стартовая страница хостинга http://mcd.test2.ru/.

Рис. 2 Стартовая страница сайта http://localhost/

Рис. 3 Вход на хостинг http://mcd.test1.ru/.

Рис. 4 Стартовая страница хостинга http://mcd.test1.ru/.

Рис. 5 Стартовая страница хостинга http://mcd.test2.ru/.

Рис. 6 Вход на хостинг http://mcd.test1.ru/.

Рис. 7 Стартовая страница хостинга http://mcd.test3.ru/.

Как видно из рисунков все хостинги отвечают на запрос браузера и работоспособны.