Масовий хостинг за допомогою mod_vhost_alias

| Робота з Apache | Масовий хостинг за допомогою mod_vhost_alias

Масовий хостинг за допомогою mod_vhost_alias

У статті описується робота з модулем Apache mod_vhost_alias. Даний модуль призначений для зменшення трудомісткості створення і підтримки великої кількості віртуальних хостів на сервері Apache. Модуль організовує динамічне створення віртуальних хостів на основі запитаного доменного імені і не вимагає внесення змін в конфігураційні файли сервера при створенні нових віртуальних хостів.







При великому числі віртуальних хостів (десятки і сотні) час запуску і перезавантаження веб-сервера займає чимало часу, протягом якого він недоступний відвідувачам. Така ситуація є критичною для хост-провайдерів і серверів на яких розташовані популярні сайти. Зменшити час запуску сервера і спростити роботу c великою кількістю віртуальних хостів може модуль Apache з назвою mod_vhost_alias.

У директивах модуля можуть використовуватися такі параметри:

  • %% - символ%
  • % P - номер запитаного порту
  • % N.M - ім'я хоста або частина імені, яка визначається значеннями N і M.

Параметр N визначає частину імені хоста, яке слід використовувати. Параметр M визначає номер використовуваного символу з частини N. Нижче показані можливі значення параметра N і приклади на основі доменного імені www.st-host.ru.

Розбиття імен хостів на частини відбувається по символу точки зліва направо. Тобто для імені www.st-host.ru першою частиною буде - www, а останньою - ru.







/ Www /% 0 / htdocs Шлях: /www/www.st-host.ru/htdocs
/ Www /% - 1 /% - 2 / htdocs Шлях: / www / ru / st-host / htdocs
/www/%-1/%-2.1/%-2/htdocs Шлях: / www / ru / s / st-host / htdocs
/www/%-1/%-2.1/%-2.1%-2.2/%-2/htdocs Шлях: / www / ru / s / st / st-host / htdocs

Якщо на сервері використовується велика кількість віртуальних хостів, то директорії зберігання сайтів зручно розподіляти по іменах доменів першого рівня (ru, com, net, org і т.п.). При розміщенні декількох сотень сайтів їх можна розподіляти по папках, імена яких відповідають першим символам доменних імен.

Недоліки модуля mod_vhost_alias

Зручний спосіб створення віртуальних хостів за допомогою модуля mod_vhost_alias не позбавлений ряду недоліків.

  • Не можна розділити логи сервера по віртуальних хостів - всі звернення до різних сайтах записуються в загальний журнальний файл.
  • Для ефективного використання модуля mod_vhost_alias конфігурація всіх віртуальних хостів повинно бути однакова. В іншому випадку, для настройки кожного віртуального хоста необхідно застосовувати контейнер. що позбавляє модуль mod_vhost_alias свого основного переваги.

Настроювання віртуальних хостів, створених mod_vhost_alias

Модуль mod_vhost_alias не має коштів індивідуальної настройки віртуальних хостів і внаслідок цього конфігурації всіх віртуальних хостів, створених модулем, виходять однаковими. При необхідності індивідуального конфігурації віртуальних хостів застосовується контейнер. в якому проводиться настройка роботи Apache індивідуально для кожної директорії.

Розглянемо приклад. Необхідно провести унікальну настройку сайту www.mega-site.ru. При цьому для створення віртуальних хостів використовується модуль mod_vhost_alias з наступними директивами.

Згідно з директивою VirtualDocumentRoot файли сайту www.mega-site.ru повинні зберігатися в директорії / www / ru / mega-site / htdocs. Для того щоб налаштувати роботу Apache для цієї теки необхідно в файлі httpd.conf створити такі директиви.

Всередині контейнера необхідно розмістити директиви, які необхідно застосувати до конкретного сайту (віртуальному хосту).

Примітка

Часткове конфігурація віртуальних хостів можна проводити також через файли .htaccess, що розміщуються безпосередньо в директорії сайту.