The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

20.02.2012 14:06  Релиз новой стабильной ветки http-сервера Apache 2.4

Доступен релиз http-сервера Apache 2.4.1, первый выпуск новой стабильной ветки 2.4.x, последние годы развиваемой в рамках экспериментальной ветки 2.3.x (прошлая стабильная ветка Apache 2.2 вышла в 2005 году, а первая альфа-версия 2.3.0 была представлена в 2008 году). В составе ветки 2.4.x развивались новые возможности, которые невозможно было интегрировать в стабильную ветку 2.2.x в силу большого размера вносимого кода, необходимости значительной переработки подсистем или из-за нарушения совместимости.

Несмотря на то, что в ветке 2.4 заметно расширен API, он остаётся обратно совместимым с API Apache 2.2. Написанные для Apache 2.2.x модули потребуют перекомпиляции, но будут работать в Apache 2.4 без изменений кода или потребуют минимальных изменений. В отличие от прошлых выпусков, из состава пакета с исходными текстами Apache 2.4 исключены компоненты Apache Portable Runtime (APR) и APR-Util, которые теперь распространяются отдельно и имеют свою нумерацию версий. Для сборки Apache 2.4 следует установить APR 1.4.x и APR-Util 1.4.x.

Ключевые новшества:

  • Несколько MPM могут быть одновременно собраны в виде динамически загружаемых модулей, которые можно активировать в конфигурации без последующей пересборки;
  • С модуля Event MPM снят гриф экспериментальной разработки. Event MPM основан на коде модуля Worker и реализует гибридную модель обработки соединений, сочетающую многопоточность с пулом ожидающих соединения процессов;
  • Возможность определения через оператор "If" блоков конфигурации, привязанных к отдельным запросам (Per-request configuration). Например, можно использовать If "$req{Host} = ''", внутри выражения можно ссылаться на HTTP-заголовки запроса ($req), заголовки ответа ($resp) и переменные окружения ($env);
  • Реализована поддержка асинхронных операций чтения и записи;
  • Возможность определения через директиву LogLevel разных форматов ведения лога для отдельных модулей и директорий;
  • Возможность указания значения параметра KeepAliveTimeout в миллисекундах;
  • Новые модули:
    • mod_lua - позволяет интегрировать в httpd интерпретатор языка Lua;
    • mod_proxy_fcgi - модуль с поддержкой проксирования протокола FastCGI (поддержка схемы "fcgi:" в директиве "ProxyPass");
    • mod_proxy_scgi - модуль с поддержкой проксирования протокола SCGI (поддержка схемы "scgi:" в директиве "ProxyPass");
    • mod_ratelimit - позволяет организовать ограничение пропускной способности клиентов (например, суммарно для всех можно ограничить общую пропускную способность только для страницы загрузки файлов);
    • mod_remoteip - заменяет значение IP-клиента на содержимое из определенного HTTP-заголовка (например, X-Client-IP или X-Forwarded-For). Обычно модуль используется при работе apache в роли бэкенда;
    • mod_reflector - позволяет возвращать клиенту тело запроса, применив к нему определенный фильтр;
    • mod_reqtimeout - позволяет установить таймаут и минимальную интенсивность потока данных при обработке входящих запросов (например, "RequestReadTimeout body=10,MinRate=1000" ограничивает время загрузки тела запроса 10 секундами, плюс прибавляет по 1 секунде на каждые 1000 байт полученных данных);
    • mod_request - позволяет определить фильтр для обработки и распространения тела запроса;
    • mod_slotmem_shm - система доступа к разделяемой памяти на основе слотов (scoreboard);
    • mod_allowmethods - позволяет ограничить некоторые HTTP-методы не мешая авторизации и аутентификации (например, "AllowMethods GET HEAD OPTIONS");
    • mod_buffer - позволяет организовать буферизацию для входящих и исходящих фильтров.
  • Измененные модули:
    • В mod_ssl добавлена поддержка проверки статуса клиентского сертификата на OCSP серверах. Также добавлена возможность совместного использования данных SSL сессии на нескольких http-серверах, через задействование memcached;
    • В mod_cache добавлена поддержка кэширования HEAD-запросов. Директивы mod_cache теперь можно указывать в привязке к отдельным директориям, а не только для отдельного сервера. Добавлена возможность выводить устаревшие данные из кэша в случае недоступности рабочего бэкенда. В заголовок X-Cache можно подставлять значения HIT/MISS/REVALIDATE;
    • В mod_include в элемент 'include' добавлена поддержка атрибута 'onerror', позволяющего вывести свой документ при ошибке вместо вывода используемого по умолчанию текста ошибки (например, include virtual="/not-exist.html" onerror="/error.html");
    • В mod_proxy значительно увеличена производительность работы директивы ProxyPass в блоках Location и LocationMatch, что значительно быстрее, чем использование традиционного синтаксиса "ProxyPass путь URL";
    • В mod_proxy_balancer расширено число параметров BalancerMembers, которые можно менять через balancer-manager. Добавлена возможность добавления новых параметров BalancerMembers через balancer-manager. Поддержка изменения во время исполнения подмножества параметров директивы Balancer;
    • В модулях mod_cgi, mod_include, mod_isapi и т.п. преобразование заголовков в переменные окружения осуществляется по более строгим правилам, например, блокируются попытки осуществления XSS-атак через подстановку скриптов в заголовки. Все заголовки в которых используются специальные символы теперь молча удаляются. Для проброса некорректных с точки зрения новых правил переменных окружения в устаревшие скрипты предусмотрено несколько обходных путей;
    • В модуле mod_authz_core расширенная логика авторизации может быть задана при помощи Require и связанных директив, таких как RequireAll;
  • Дополнительные компоненты:
    • В поставку Apache включен скрипт fcgistarter, предназначенный для запуска серверных FastCGI процессов.
    • В утилиту htcacheclean - добавлены функции просмотра и удаления отдельных прокэшированных URL и связанных с ними мета-данных;
  • Средства для разработчиков модулей:
    • Интерфейс для кэширования небольших объектов, основанный на ранее созданном для mod_ssl кэше сессионных данных. В качестве хранилища можно использовать цикличный буфер в разделяемой памяти, dbm-базу на диске и memcached;
    • Добавлен парсер выражений общего назначения, API которого основан на ap_expr.h. Код парсера основан на ранее реализованном парсере для mod_include;
    • Добавлен hook check_config для проверки конфигурации на ранней стадии загрузки, позволяя независимо проанализировать параметры определенных директив и при необходимости откорректировать их;
    • Для оценки статуса mod_cache добавлен hook cache_status, вызываемый после принятия решения о кэшировании. Реализация по умолчанию добавляет при ответе опциональные заголовки X-Cache в X-Cache-Detail.


  1. Главная ссылка к новости (http://www.apache.org/dist/htt...)
  2. OpenNews: Вышел Apache 2.2.0. Обзор новшеств.
Лицензия: CC-BY
Тип: Интересно / Программы
Ключевые слова: apache, httpd
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, arcade, 14:31, 20/02/2012 [ответить] [смотреть все]
  • +/
    Апачему Event MPM на KQueue и EPoll но не на GCD?
     
     
  • 2.3, XPEH, 15:06, 20/02/2012 [^] [ответить] [смотреть все] [показать ветку]
  • +1 +/
    Проблемы яблок индейцев не интересуют :)
     
     
  • 3.35, arcade, 12:07, 21/02/2012 [^] [ответить] [смотреть все]
  • +1 +/
    Не знаю что там с индейцами и яблоками а MPM для GCD уже есть http libdispatc... весь текст скрыт [показать]
     
  • 2.5, Аноним2, 15:25, 20/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Потому что KQueue > GCD ?
     
     
  • 3.7, Аноним, 15:28, 20/02/2012 [^] [ответить] [смотреть все]  
  • +/
    Скорее потому что kqueue способ уведомления о событиях, а GCD способ запуска нов... весь текст скрыт [показать]
     
     
  • 4.36, arcade, 12:13, 21/02/2012 [^] [ответить] [смотреть все]  
  • +/
    Не совсем так, GCD это целый комбайн, изначально он работает с волокнами но позв... весь текст скрыт [показать]
     
  • 2.6, Аноним, 15:25, 20/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А разве GCD работает вне Objective C runtime?
     
     
  • 3.26, Andrew Kolchoogin, 20:43, 20/02/2012 [^] [ответить] [смотреть все]  
  • +/
    FYI: devel/libdispatch. GCD for FreeBSD. :)
     
  • 1.2, фклфт, 15:06, 20/02/2012 [ответить] [смотреть все]  
  • +2 +/
    Ну вроде не плохо
    особенно порадовало mod_ratelimit
     
  • 1.4, RedRat, 15:16, 20/02/2012 [ответить] [смотреть все]  
  • +/
    Рад, что Индеец жив, здоров и растёт большим. Но я на днях последний сервер под Апачем на nginx перевёл. А после включения в php-fpm опции ondemand всё стало совсем шоколадно.
     
     
  • 2.9, Аноним, 15:47, 20/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Я думал индеец это чероки...
     
     
  • 3.10, Andrey Mitrofanov, 15:51, 20/02/2012 [^] [ответить] [смотреть все]  
  • –2 +/
    Глупый, indian же.
     
  • 3.17, Аноним, 17:27, 20/02/2012 [^] [ответить] [смотреть все]  
  • +/
    А я думал что апачи и чероки - разные племена индейцев Может, историю и географ... весь текст скрыт [показать]
     
     
  • 4.22, Аноним, 17:33, 20/02/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    А еще есть куча людей, которые путают индейцев, индийцев и индусов ... весь текст скрыт [показать]
     
     
  • 5.37, Аноним, 12:57, 21/02/2012 [^] [ответить] [смотреть все]  
  • +/
    в чем разница ... весь текст скрыт [показать]
     
     
  • 6.41, Аноним, 18:03, 21/02/2012 [^] [ответить] [смотреть все]  
  • +/
    > в чем разница?

    Примерно как между русскими и православными.

     
  • 2.11, sphere, 15:59, 20/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    всё дело в том, что apache - это несколько больше чем php... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.12, RedRat, 16:14, 20/02/2012 [^] [ответить] [смотреть все]  
  • +/
    А с этим никто и не спорит Просто в конкретно моём случе оказалось, что на шест... весь текст скрыт [показать]
     
     
  • 4.27, myhand, 21:21, 20/02/2012 [^] [ответить] [смотреть все]  
  • –3 +/
    И раньше и теперь - сервер явно упирается в некомпетентного системного админис... весь текст скрыт [показать]
     
     
  • 5.29, arisu, 21:26, 20/02/2012 [^] [ответить] [смотреть все]  
  • +/
    внизапна после установки этого 171 прокси 187 апач вообще оказался не нужен... весь текст скрыт [показать]
     
     
  • 6.30, myhand, 22:40, 20/02/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    В данном случае - да.  Правда, проделана куча ненужной, в общем-то, работы.
     
  • 5.34, RedRat, 12:00, 21/02/2012 [^] [ответить] [смотреть все]  
  • +2 +/
    О, господи, ещё один диагност по фотографии Ничего не знает ни о задаче, ни... весь текст скрыт [показать]
     
     
  • 6.38, myhand, 12:59, 21/02/2012 [^] [ответить] [смотреть все]  
  • –4 +/
    Понимающему вы сообщили достаточно Если считаете, что диагност ошибся - опиш... весь текст скрыт [показать]
     
  • 3.18, Аноним, 17:28, 20/02/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Особенно хорошо это заметно когда он форкает 100500 процессов где и похапэ и апа... весь текст скрыт [показать]
     
     
  • 4.21, MVK, 17:33, 20/02/2012 [^] [ответить] [смотреть все]  
  • +/
    - неужели не слышали что кроме prefork есть другие MPM Даже в статье написано -... весь текст скрыт [показать]
     
     
  • 5.24, Аноним, 18:32, 20/02/2012 [^] [ответить] [смотреть все]  
  • +/
    В apache столько всего что его нужно изучать чтобы пользоваться им эффективно - ... весь текст скрыт [показать]
     
  • 5.42, angra, 21:19, 21/02/2012 [^] [ответить] [смотреть все]  
  • +/
    Когда я последний раз интересовался mod_php, оно все еще падало под всем кроме p... весь текст скрыт [показать]
     
     
  • 6.45, AlexAT, 07:54, 22/02/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Это хорошо объяснено в мануале PHP Дело не в самом mod_php или PHP, дело в том,... весь текст скрыт [показать]
     
  • 4.44, AlexAT, 07:53, 22/02/2012 [^] [ответить] [смотреть все]  
  • +/
    Просто не юзайте винду, в нормальных ОС есть разделение памяти процессами до мом... весь текст скрыт [показать]
     
     
  • 5.47, arisu, 13:51, 22/02/2012 [^] [ответить] [смотреть все]  
  • +/
    вообще-то в винде тоже есть те же DLL она пречудесно расшаривает между процесса... весь текст скрыт [показать]
     
  • 1.8, mikevmk, 15:37, 20/02/2012 [ответить] [смотреть все]  
  • +/
    mod_lua хехе. это очень жорошо, что свободные проекты свободно обмениваются идеями
     
  • 1.14, Аноним, 16:47, 20/02/2012 [ответить] [смотреть все]  
  • +/
    поддержка асинхронных операций чтения и записи - давно этого ждали...
     
  • 1.25, o, 20:00, 20/02/2012 [ответить] [смотреть все]  
  • +/
    event mpm потестим, а то он все падал..
     
     
  • 2.28, myhand, 21:22, 20/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Интересно А в каких условиях падал Вы часом, с mod_php его не используете ... весь текст скрыт [показать] [показать ветку]
     
  • 1.31, Аноним, 23:53, 20/02/2012 [ответить] [смотреть все]  
  • –1 +/
    На самом деле, что в апаче, что в nginx жутко не хватает встроенного, из коробки... весь текст скрыт [показать]
     
     
  • 2.32, Аноним, 00:28, 21/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > fast_cgi - зло

    Чем?

     
  • 2.33, Eugene Prokopiev, 08:37, 21/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    а это разве не из коробки - http wiki nginx org HttpUwsgiModule ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.39, KOL, 13:32, 21/02/2012 [^] [ответить] [смотреть все]  
  • +/
    Мануалы не предназначены для настоящих джедаев.

    >This module first appeared in nginx-0.8.40

     
  • 2.40, Аноним, 18:01, 21/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Есть же FastCGI, зачем вам WCGI?
     
  • 1.43, XoRe, 22:20, 21/02/2012 [ответить] [смотреть все]  
  • +/
    mod_fastcgi ?
    И даже дружит с fpm?
     
     
  • 2.46, Vladimir, 12:25, 22/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Дружит, причем давно. У меня apache в роли "выполнялки .htaccess" прекрасно работает в связке nginx + apache 2.2(mod_fastcgi) + php-fpm
     
     
  • 3.48, XoRe, 00:55, 24/02/2012 [^] [ответить] [смотреть все]  
  • +/
    > Дружит, причем давно. У меня apache в роли "выполнялки .htaccess" прекрасно работает
    > в связке nginx + apache 2.2(mod_fastcgi) + php-fpm

    Мы говорим об одном fastcgi?
    Я про тот, который демонизируется и слушает порт.

    .htacess + fastcgi - я так понимаю, работает все, кроме php_value/flag ?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor