Фонд разработки открытого программного обеспечения Apache Software Foundation 22 февраля сообщил о выпуске сервера Apache HTTP Server 2.4, ставшего крупнейшим обновлением этого наиболее популярного интернет-сервера.
Предыдущий главный релиз Apache 2.2 был выпущен еще в 2005 г. Версия 2.3 позиционировалась как сборка для программистов и тестеров. Новая версия рекомендована для повседневного использования.
По данным исследовательской компании Netcraft, проводящей мониторинг Интернета, на февраль этого года сервер Apache обеспечивает функционирование около 65% сайтов, что соответствует примерно 400 млн. проектов. Вторым по популярности сервером в сети является Microsoft IIS, инсталлированный на 14,5% сайтов. На третьем месте — Nginx: хотя на его базе сейчас работает менее 10% сайтов, он считается серьезным конкурентом для Apache. Так, за прошлый месяц Nginx был инсталлирован на 12 тыс. сайтов, в то время как Apache за тот же период потерял 18 тыс.
Одним из основных отличий новой версии Apache является увеличение производительности сервера при больших нагрузках, которая считается сильной стороной Nginx.
В версии 2.4 полностью изменен принцип работы с контентом внутри сервера: многие модули Apache теперь поддерживают замену контента; все действия выполняются с исходным экземпляром данных вместо их копирования и манипуляций с копией.
Кроме повышенной производительности и улучшенного использования памяти, Apache 2.4 предлагает множество новых стандартных модулей. Эти модули реализуют самые разные функции — от встраивания языка Lua до управления квотами для клиентов.
Среди основных улучшений новой версии отмечается включение динамически загружаемых многоцелевых модулей MPM (Multi-Processing Module), которые берут на себя большинство базовых функций Apache. Если прежде для включения того или иного модуля требовалась перекомпиляция кода всего Apache, то теперь нужный модуль MPM можно просто подключить при запуске сервера, что позволяет менять методы работы сервера на лету. Кроме того, улучшена поддержка асинхронного чтения-записи для МРМ, причём LogLevel может быть сконфигурирован для каждого модуля и каждой директории отдельно.
Помимо этого Apache 2.4 впервые предлагает полную поддержку модуля обработки событий Event MPM. Утверждается, что данный модуль позволяет серверу Apache работать практически так же, как Nginx, увеличивая число одновременно обслуживаемых задач за счет снижения общей производительности.
Одна из проблем Apache 2.2 в облачных средах состояла в том, что Web-серверы приходилось запускать вручную. В версии 2.4 сервер Apache можно сконфигурировать для автоматического подключения и запуска новых Web-серверов с целью обслуживания дополнительной нагрузки в расширенной среде. А администраторы теперь могут использовать Web-интерфейс для добавления и настройки Apache-кластеров, вместо того чтобы вручную редактировать текстовые файлы с конфигурациями. В новой версии сервера появилась возможность использовать переменные в конфигурационных файлах.
Несмотря на введение в версии 2.4 Apache множества новых возможностей, потребление памяти по сравнению с веткой 2.2 снижено, и он остаётся обратно совместимым с API предыдущей версии.
Новая версия доступна в исходниках на основном сайте проекта. В будущем ее планируется включить в состав базового ПО на многих Unix/Linux-дистрибутивах. Есть также версия под Windows.