Apache HTTP Server (или само Apache) е разработка на софтуерна фондация Apache от 1996г. Повече от 19 години той е безспорен лидер в класацията на уеб сървърите, следван от уеб сървъра на Microsoft IIS (Internet Information Services), който се използва само при Windows системи.
Предишната голяма версия Apache 2.2 излезе на пазара през 2005 година. След седем години на разработка и тестове (през 2012г.) е готова и пусната версия 2.4. Въпреки че са минали три години от пускането на тази основна стабилна версия, сериозните подобрения и интересните новости, представени в нея, заслужават да бъдат описани.
Подобренията в тази версия са продиктувани от тенденциите в развитието и усложняването на уеб приложенията. От Apache са погледнали и към двете отличителни характеристики на конкурентната технология на Nginx – „event-driven“ начин на работа и минимално потребление на памет.
В резултат на това, във версия 2.4 на Apache е добавена нова специфична функционалност – Event MPM (Multi Processing Module), която позволява на Apache да работи по начин, много подобен на Nginx. Новата версия 2.4 е многократно тествана и сравнявана с предишните версии на Apache. Разработчиците отчитат, че това е най-бързата версия от всички досега и въпреки повишените показатели, потреблението на памет е намалено спрямо версия 2.2.
С няколко думи Apache версия 2.4 има:
Подобрена производителност и намалена консумация на памет
Избор на няколко мулти-оперативни модула (MPM – Multi-Processing Modules) за ползване от Apache
Към уеб сървъра може да се добави повече от един мулти-оперативен модул. При компилиране се задават мулти-оперативните модули, които ще бъдат добавени. След това, при стартиране на уеб сървъра, може да се избере кой от тях да се ползва.
Преди версия 2.4 при компилиране на Apache се е избирал само един мулти-оперативен модул, който ще се ползва. Тези модули са основата за различните принципи на работа на уеб сървъра. Различават се от другите Apache модули по това, че по едно и също време може да има зареден само един мулти-оперативен модул. За UNIX-базирани системи има три такива модула – prefork, worker и event.
Event – мулти-оперативен системен модул
Този системен модул, в статус „експериментален“, вече е напълно поддържан от уеб сървъра. Event модулът поддържа асинхронен начин за справяне с връзките към уеб сървъра, подобно на Nginx. С това той редуцира броя на създадените процеси, което се отразява в намалена консумация на памет. Ако се нуждаете от обработка на огромен брой едновременни заявки, тогава Event е точният мулти-оперативен модул (за разлика от Prefork модула, който е предназначен за супер бърза обработка на единична заявка/отговор).
Асинхронност
По-добра поддръжка на асинхронни входно-изходни операции, което се използва от мулти-оперативните модули (MPM).
KeepAliveTimeout в милисекунди
Keep-AliveTimeout е настройка към Keep-Alive, с която се задава след колко време (секунди) на неактивност да се прекрати връзката между уеб сървър и уеб браузър. Ако по нея не се получи нова HTTP заявка в рамките на зададения период, тя се прекратява. Вече е възможно за Keep-AliveTimeout да се зададе стойност в милисекунди.
Нови модули
mod_session
Позволява използването на статус за сесиите чрез cookie или база данни.
mod_allowmethods
Нов модул, с който лесно може да се ограничи поддръжката на определени HTTP методи от уеб сървъра (HTTP методите се използват в заявките на уеб браузъра за изпращане или поискване на информация от сървъра ). Например:
<Location />
AllowMethods GET POST OPTIONS
</Location>
mod_lua
С този модул към уеб сървъра се добавя поддръжка на скриптовия език Lua (от португалски – Луна). Lua е описан от разработчиците си като мощен, бърз, лек и лесен за интегриране скриптов език. Използван е в множество игри и приложения като World of Warcraft, Angry Birds, MediaWiki, Adobe Photoshop Lightroom и други.
Подобрения по вече съществуващи модули
mod_cache
Модулът вече може да кешира HEAD заявки, да предоставя кеширани данни при съобщения от типа Error 5xx, както и директивите му да се задават за директория, вместо за целия сървър.
mod_cgi, mod_include, mod_isapi
Преобразуването на заглавните части (headers) на заявките в променливи на средата е по-стриктно. Това може да предотврати вероятни атаки от тип cross-site-scripting с инжектиране на заглавни части.
mod_rewrite
Добавени са флаговете [QSD] (Query String Discard) и [END] към RewriteRule за опростяване на правилата при по-често срещаните случаи на пренасочване.
Останалите подобрения можете да видите в описа с новостите на Apache 2.4.
Apache 2.4.x се поддържа при всички VPS планове.
Вижте как можете да инсталирате уеб сървъра Apache 2.4.х (с Event MPM) на VPS с CentOS 7.x.
Ако сте избрали VPS с контролен панел Webuzo също можете да инсталирате Apache 2.4.
🚀 Apache 2.4.x се поддържа на всички хостинг планове, WordPress хостинг услугата и Managed VPS сървърите, предлагани от СуперХостинг.БГ.
Интересно: Apache е базиран на уеб сървъра NCSA HTTPd, който е продължение на първия уеб сървър – CERN httpd.