Выход Apache 2.3.11 ознаменовал переход ветки 2.3 на стадию бета-тестированияУвидел свет новый выпуск экспериментальной ветки http-сервера Apache 2.3.11, на базе которой будет сформирована стабильная ветка 2.4. Версия 2.3.11 примечательна переходом на стадию бета-тестирования, на которой наращивание функциональности сменяется стадией выявления и исправления ошибок. В состав ветки 2.3.x вошли новые возможности которые невозможно интегрировать в стабильную ветку 2.2.x в силу большого размера вносимого кода, необходимости значительной переработки подсистем или из-за нарушения совместимости. Релиз 2.3.11 включает в себя Apache Portable Runtime (APR) 1.4.2 и APR-Util 1.3.10, которые в отличие от прошлых выпусков выделены в отдельный архив "-deps". В Apache 2.3.11 используется расширенный вариант Apache 2.2 API, поэтому для работы в Apache 2.3.x собранных для Apache 2.2.x модулей требуется их пересборка и, возможно, незначительная модификация кода. Из новшеств, ожидаемых в будущей стабильной ветке Apache 2.4, можно отметить: Несколько 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.
Распечатано с HostDB.ru.
|