3. Основные принципы виртуальных
хостов
Часто возникает необходимость размещения на одном сервере нескольких сайтов. Для этого
Apache Web Server предоставляет возможность создания виртуальных хостов (виртуальных Web
серверов). Это означает, что пользователь видит несколько Web серверов, тогда как в
реальности существует только один.
Существуют 2 вида виртуальных хостов:
◦ Идентификация по имени (name based virtual host) – хосты отличаются именем. Определение имени
хоста, к которому осуществляется запрос, осуществляется по заголовкам HTTP
◦ Идентификация по IP (IP based virtual host) – имени хоста может не быть, но IP адреса различны
Настройка обоих видов виртуальных хостов идентична.
Администраторами сайтов часто бывают различные люди, поэтому, в целях безопасности,
каждому администратору подготавливается своё рабочее место, изолированное от других.
Для автоматизации данной работы существуют различные инструменты, которые в рамках
данной лекции не рассматриваются.
4. Подготовка рабочей области для
администратора сайта
Часто в ОС Linux Web сервер располагает документы, с которыми работает в директории
/var/www
Для того, чтобы подготовить рабочую область для администратора сайта необходимо:
◦ Создать нового пользователя (администратора сайта)
◦ useradd
◦ groupadd
◦ Создать директорию сайта
◦ mkdir
◦ Назначить права на редактирование содержимого созданной директории данному пользователю
◦ chown
◦ chmod
◦ Назначить права на редактирование (?) содержимого данной директории пользователю сервера
◦ Разрешить данному пользователю доступ к системе через ssh (ftp)
6. Создание виртуального хоста
Во многих случаях при установке Web сервера создаётся виртуальный хост по умолчанию.
В таком случае достаточно скопировать определение данного виртуального хоста и
отредактировать его настройки.
◦ <VirtualHost *:80>
◦ ServerName www.example.com
◦ ServerAlias example.com
◦ DocumentRoot "/var/www/domain"
◦ </VirtualHost>
7. Конфигурация виртуального хоста
Параметр Описание
ServerAdmin электронный адрес администратора сервера, на который должны
приходить все уведомления связанные с виртуальным хостом
ServerName имя хоста, по запросу которого должны выдаваться файлы
ServerAlias Альтернативное имя хоста (псевдоним)
DocumentRoot Корневая директория сайта
ErrorLog Журнал регистрации ошибок для данного хоста
CustomLog Создание журнала регистрации событий, указание формата журнала
<Directory > Определение правил для корневой директории сайта
Создаются пользователи, например, на уровне системы, доступ они получают только к одной директории, в которой находится (или должен находиться) web сайт. Для каждого пользователя создаются базы данных, пользователи базы данных. Может настраиваться доступ по ftp.
Организовать доступ через ftp, доступ к другим директориям закрыть!
Настройки директорий после
service <service-name> restart
/etc/init.d/<daemon-name> restart
systemctl <service-name> restart