Опис модулів apache (частина 1)

Загальна інформація про модулях веб-сервера Apache

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

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

Дізнатися які модулі в даний момент підключені можна подивившись конфігураційний файл Apache - httpd.conf. Ті модулі, які починаються з рядка LoadModule, в даний момент підключені. Ті ж, чия рядок закомменірована (#LoadModule) в даний момент відключені, але можуть бути задіяні.

  • модулі, які за умовчанням не поставляються з Apache (т. е. ви не знайдете їх в каталозі include поки самі не встановите).
  • модулі, які поставляються з Apache і за замовчуванням підключені.
  • модулі, які поставляються з Apache, але за замовчуванням відключені.

Я буду розглядати на прикладі Windows версії Apache, але вся інформації (по крайней мере, опису модулів) застосовні і до інших платформ, на яких працює Apache.

Статично скомпільовані модулі (ті, які виводяться командою httpd -l) тут не розглядаються.

Модулі, які не поставляються з Apache

mod_log_dbd

Даний модуль веде лог (записує) веб запити до SQL базі даних. Це хороша і корисна функція. Цей модуль буде розглянуто докладно в окремій статті на codeby.net.

mod_vhost_dbd

Цей модуль перезаписує директорію document root з SQL бази даних

mod_bw (Bandwidth Mod)

  • Обмежує кількість одночасних з'єднань на віртуальний хост / каталог
  • Обмежує смугу пропускання для файлів на віртуальному хості / каталозі
  • Отримує деяку базову статистику

mod_security

Мій улюблений модуль і, мабуть, після mod_rewrite найпопулярніший.

ModSecurity - це WAF - web application firewall, тобто файервол для веб-додатків. Його сенс полягає в тому, що він перевіряє всі, хто входить на веб-сервер запити і відфільтровує ті з них, які відповідають правилам безпеки. WAF (файервол для веб-додатків) може запобігти атакам самого різного роду - ін'єкції (Інжект) в бази даних, міжсайтовий скриптинг, на відомі уразливості популярних движків і дуже багато іншого, навіть, наприклад, у випадку з Shellshock може допомогти ModSecurity.

Набираємо команду для організації і проведення вебінарів Детальніше.

Це високопродуктивна альтернатива для mod_cgi або mod_cgid, яка запускає достатню кількість примірників CGI програми, щоб обробляти одночасні запити, і ця програма продовжує працювати для обробки наступних вхідних запитів. Це подобається, наприклад, PHP розробникам, які вважають за краще його як альтернативу запуску mod_php для кожного процесу, при цьому досягається схожа продуктивність.

Конектор сервера Tomcat. Щоб розуміти, навіщо він потрібен, спочатку потрібно пояснити що таке Tomcat, а також що таке сервлети Java і технології JavaServer Pages.

mod_line_edit

mod_log_rotate

Якщо у вас багато віртуальних серверів на одному Apache і ви використовуєте поставляється разом з ним програму rotatelogs.exe для ротації логів, ви помітите, що ваша таблиця процесів захаращена екземплярами rotatelogs для кожного віртуального сервера. З mod_log_rotate ротація логів обробляється процесом сервера, тому ви заощадите купу процесів і дескрипторів файлів.

Може використовуватися в парі з програмами для візуалізації цих даних.

mod_websockect

Дозволяє веб-сторінок використовувати протокол WebSocket для двостороннього зв'язку.

mod_xsendfile

Цей модуль обробляє X-SENDFILE заголовки, які зерегестріровани оригінальним оброблювачем виведення.

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

Може бути корисний для обробки виведення скриптів на кшталт php, perl або будь-яких cgi.

Потрібні розробники і тестери для проекту codebyOS

Вимоги для участі в проекті: Знання принципів роботи ОС на базі Linux; Знання Bash; Вкрай бажане знання CPP, Python, Lua; Навички системного адміністрування. Детальніше.