Якщо ви вже ознайомилися з вступним матеріалом про сервер Apache і до статті, що описує відмінності між різними версіями, встановили і справили первинну настройку сервера, то можна приступати до розгляду модульної системи Apache. Справа в тому, що даний веб-сервер, по суті, складається з одного обов'язкового модуля - ядра (Apache Core), що виконує найпростіші завдання сервера. Всі інші функції описуються в додаткових модулях. У цьому матеріалі ми розглянемо деякі модулі Apache, як часто використовувані, так і маловідомі веб-розробникам.

Перевага такої структури полягає в тому, що ви можете в будь-який момент підключати та відключати додаткові модулі, використовуючи саме ту конфігурацію сервера, яка потрібна для виконання ваших завдань. Таким чином, Apache буде займати рівно стільки місця, скільки потрібно йому для роботи, а "зайві" функції не будуть вантажити пам'ять сервера, збільшуючи загальну швидкодію системи.

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

У поставку сервера входить цілий набір модулів, призначених для роботи в режимі з декількома запущеними процесами. Не секрет, що більшість існуючих операційних систем дозволяють працювати з кількома завданнями одночасно. Завдяки цій групі модулів Apache може використовувати всі можливості таких систем. Крім основного модуляmpm_common, ви зможете знайти модуль, оптимізований для кожної з найбільш популярних платформ (Windows, OS/2, BeOS, Netware і так далі).

Якщо ви хочете користуватися всемівозможностяміфайла. Htaccess, то варто встановити модульmod_access, який відповідає за доступ до каталогів і файлів на сервері. З його допомогою можна заборонити або, навпаки, дозволити доступ з певних IP-адрес або мереж.

Модель mod_actions дозволяє запускати скрипти під час звернення до певного типу файлів Модульmod_actionsсодержіт в собі дві директиви, що стосуються запуску CGI-скриптів. "Actions" відповідає за запуск виконуваного файлу в той момент, коли користувач запитує файл певного типу. Таким чином, можна, наприклад, організувати обробку зображень перед відправкою користувачу або ведення статистики. Друга директива - "Script" - дозволяє виконувати програму, коли-небудь файл запитується за допомогою певного методу (GET, POST або іншого спеціального). З її допомогою можна встановити універсальний оброблювач форми, який буде виконувати крім стандартних дій потрібні вам. Це може бути обробка даних перед внесенням їх до бази, відправка поштою, ведення статистики і так далі.

За переадресацію та створення псевдонімів відповідає модуль mod_alias Якщо вам потрібно користуватися функціями переадресації або призначення псевдонімів, то ви не обійдетеся без модуляmod_alias. Він містить у собі директиви, що дозволяють асоціювати псевдонім з певним каталогом. Наприклад, ваш каталог з картинками виглядає так:/pub/we/images/, тобто доступ на нього є, але через протокол HTTP він не доступний. Якщо ви не хочете його переміщати з якихось причин, то можете зробити псевдонім: "Alias ??/img/pub/we/images". Після цього користувачі, що набирають у своїх браузерах адресу http://ваш_сайт/img/, будуть потрапляти на потрібний каталог із зображеннями. До речі, така переадресація використовується для каталогу з CGI-скриптами.

За допомогою модуля mod_asis можна видавати клієнтові сторінку "як є", без обробки сервером Ще один цікавий, але не дуже часто використовуваний веб-майстрами модуль-mod_asis, які дозволяє "віддавати "клієнтові деякі файли без обробки сервером. Для цього в конфігураційному файлі потрібно додати рядок "AddHandler send-as-is asis", де "asis" - розширення файлу. Тепер, коли браузер буде запитувати в сервера файл з таким розширенням, він буде потрапляти до нього безпосередньо. Apache тільки додасть до заголовка ідентифікатори "Server" і "Date", все інше - наприклад, статус - буде відправлятися "як є".

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

Модульmod_authпозволяет виробляти базову автентифікацію за допомогою директив "AuthUserFile", "AuthGroupFile" і двох файлів - з іменами користувачів і паролями, і з поділом користувачів по групах.

Ви можете не використовувати групи користувачів, але вони зроблять аутентифікацію більш гнучкою. Ви зможете давати доступ окремим групам на певні розділи сайту. Для того щоб створити файл, вказаний в першій директиві, потрібно використовувати стандартну утилітуhtpasswd, яка знаходиться в каталозі "Bin" Apache. Для цього потрібно запустити його з параметрами: "htpasswd ім'я_файлу ім'я_користувача". Якщо необхідно створити новий запис користувача, то використовуйте команду з ключем "-c". Крім аутентифікації, при якій імена користувачів і паролі зберігаються в текстових файлах, існує базова автентифікація зі зберіганням інформації в базі даних. Якщо у вас існує така необхідність, то зверніть увагу на модульmod_auth_dbm.

Ще один вид аутентифікації - цифрова (HTTP Digest Authentication), яка підтримує шифрування даних ключем MD5 і вважається більш надійною, ніж базова. У Apache існує модульmod_auth_digest, який дозволяє вам нею користуватися. Для вас настройка такої авторизації не відрізнятиметься практично нічим від попереднього випадку. Тільки для створення файлів вам потрібно буде користуватися утілітойhtdigest. Взагалі тема аутентифікації користувачів при створенні інтернет-сайтів дуже об'ємна та цікава. Вона цілком заслуговує окремого матеріалу, а тут ми постаралися лише описати основні можливості сервера Apachе в цій області.

Функції з модуля mod_autoindex дозволяють автоматично створювати індексні файли Модульmod_autoindexпредназначен для автоматичної генерації індексних файлів. Це може бути дуже зручно, якщо ви створили файловий архів, і вам потрібно просто поміщати на індексної сторінці назви файлів. Вам не доведеться створювати їх вручну, достатньо скористатися відповідними директивами. З їх допомогою можна сортувати файли, додавати різним типам файлів свої іконки, відображати або приховувати файли з заданими розширеннями і так далі.

За допомогою функцій з модуля mod_deflate можна стискати файли перед відправкою користувачу для прискорення завантаження Для того щоб скористатися можливістю попереднього стиснення текстових файлів з вашого сервера, потрібно встановити модульmod_deflate. Він дозволить включити упаковку вихідних файлів перед відправкою їх користувачам. Після прийому браузер сам розпакує файл і покаже його відвідувачеві. Це дозволить вам скоротити вихідний трафік, прискорить завантаження файлів з сервера і поліпшить ставлення користувача до вашого сайту. У документації до сервера наведено хороший прімеррекомендуемой конфігурації - він дозволить вам уникнути неприємностей, якщо у користувача виявиться старий браузер, не підтримуючий можливостей упаковки, а тому не станемо приводити його тут.

Модульmod_statusпозволяет адміністратору стежити за працездатністю сервера без додаткових програм. Система буде сама записувати в файл всі запити, що надійшли на нього, час перезавантажень і зупинок сервера, завантаження процесора комп'ютера та іншу інформацію. Для цього, крім установки модуля, потрібно створити директиву у файлі httpd.conf:


SetHandler server-status

Order Deny, Allow
Deny from all
Allow from. Foo. com

У цьому випадку за адресою http://ваш_сайт/server-status ви зможете подивитися на статистику сервера. Вона буде доступна, тільки якщо ви ввійдете з комп'ютера, що знаходиться в домені. Foo.com. Втім, ви можете встановити і інші обмеження доступу.

І останній модуль, про який хотілося б розповісти, дозволить вам перетворити свій веб-сервер в проксі-сервер. Це робиться підключенням до Apache модуляmod_proxyі інших модулів цього "сімейства". Apache може працювати в двох проксі-режимах: прямому і зворотному. Прямий режим вимагає спеціальної настройки браузера відвідувача і дозволяє, наприклад, користувачам локальної мережі отримувати доступ в Інтернет. Зворотний же ніяких додаткових налаштувань не вимагає і надає доступ до комп'ютерів, які не видно "ззовні". Типовий приклад - доступ користувачів Інтернету до якого-небудь сайту, що знаходиться всередині локальної мережі.

До слова сказати, Apache дозволяє організувати не тільки HTTP, але і FTP-проксі з аналогічними функціями. Крім того, розвинена система директив дає можливість тонко розмежовувати права доступу до мереж, дозволяти або забороняти прийом певних типів файлів і так далі.

Зрозуміло, охопити всі можливі модулі Apache в рамках одного матеріалу нам не вдалося, навіть стандартних їх занадто багато. Але, з іншого боку, розповідати про всі не має особливого сенсу, тому що частина з них дуже добре відома веб-розробникам, а інша частина потрібна лише дуже вузькому колу людей. Ми постаралися говорити в основному про потрібних багатьом модулях, про існування яких знають далеко не всі.

Посилання по темі

  • Документація до модулів Apache
  • Вступна стаття про сервер Apache
  • Вибір і установка сервера Apache

Статьяполучена: hostinfo.ru

Детальніше »