Загальна інформація про модулях веб-сервера 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; Навички системного адміністрування. Детальніше.