| Раздел 1. Примечания к выпуску
Пункт 2. Новые возможности Apache 2.3/2.4 В этом документе описываются некоторые основные изменения между версиями 2.2 и 2.4 HTTP-сервера Apache. Чтобы узнать о новых функциях, начиная с версии 2.0, см. документ о новых функциях версии 2.2.
Основные улучшения
- Загружаемые MPM во время выполнения
- Несколько MPM теперь могут быть собраны как загружаемые модули во время компиляции. Выбранный MPM можно настроить во время выполнения с помощью
LoadModule директивы.
- Событие MPM
- Event MPM больше не является экспериментальным, но теперь полностью поддерживается.
- Асинхронная поддержка
- Улучшенная поддержка асинхронного чтения/записи для поддержки MPM и платформ.
- Конфигурация LogLevel для каждого модуля и каталога
- Теперь их
LogLevel можно настроить для каждого модуля и каждого каталога. Новые уровни trace1
должны trace8 быть добавлены над debug уровнем журнала.
- Разделы конфигурации для каждого запроса
-
<If> <ElseIf> Разделы , и можно использовать для установки конфигурации на основе
<Else>
критериев запроса.
- Анализатор выражений общего назначения
- Новый синтаксический анализатор выражений позволяет задавать сложные условия, используя общий синтаксис в таких директивах, как
SetEnvIfExpr ,
RewriteCond ,
Header ,
<If> , и других.
- KeepAliveTimeout в миллисекундах
- Теперь можно указать
KeepAliveTimeout в миллисекундах.
- Директива NameVirtualHost
- Больше не нужен и теперь устарел.
- Переопределить конфигурацию
- Новая
AllowOverrideList
директива позволяет более детально контролировать, какие директивы разрешены в .htaccess файлах.
- Переменные файла конфигурации
- Теперь в конфигурации можно использовать
Define
переменные, что обеспечивает более четкое представление, если одно и то же значение используется во многих местах конфигурации.
- Уменьшено использование памяти
- Несмотря на множество новых функций, версия 2.4.x использует меньше памяти, чем версия 2.2.x.
Новые модули
-
mod_proxy_fcgi
- Серверная часть протокола FastCGI для
mod_proxy
-
mod_proxy_scgi
- Серверная часть протокола SCGI для
mod_proxy
-
mod_proxy_express
- Предоставляет динамически настраиваемые массовые обратные прокси для
mod_proxy
-
mod_remoteip
- Заменяет очевидный удаленный IP-адрес клиента и имя хоста для запроса списком IP-адресов, представленным прокси-сервером или балансировщиком нагрузки через заголовки запроса.
-
mod_heartmonitor ,
mod_lbmethod_heartbeat
- Разрешить
mod_proxy_balancer основывать решения по балансировке нагрузки на количестве активных подключений на внутренних серверах.
-
mod_proxy_html
- Ранее являвшийся сторонним модулем, он поддерживает исправление HTML-ссылок в ситуации с обратным прокси-сервером, когда серверная часть генерирует URL-адреса, недопустимые для клиентов прокси-сервера.
-
mod_sed
- Усовершенствованная замена
mod_substitute , позволяет редактировать тело ответа с полной мощью sed.
-
mod_auth_form
- Включает аутентификацию на основе форм.
-
mod_session
- Позволяет использовать состояние сеанса для клиентов, используя файлы cookie или хранилище базы данных.
-
mod_allowmethods
- Новый модуль для ограничения определенных методов HTTP без вмешательства в аутентификацию или авторизацию.
-
mod_lua
- Встраивает язык Lua в httpd для функций настройки и логики малого бизнеса. (Экспериментальный)
-
mod_log_debug
- Позволяет добавлять настраиваемое ведение журнала отладки на разных этапах обработки запроса.
-
mod_buffer
- Обеспечивает буферизацию стеков входных и выходных фильтров.
-
mod_data
- Преобразование тела ответа в URL-адрес данных RFC2397
-
mod_ratelimit
- Обеспечивает ограничение пропускной способности для клиентов
-
mod_request
- Предоставляет фильтры для обработки и предоставления доступа к телам HTTP-запросов.
-
mod_reflector
- Обеспечивает отражение тела запроса в виде ответа через стек выходного фильтра.
-
mod_slotmem_shm
- Предоставляет поставщика общей памяти на основе слотов (например, табло).
-
mod_xml2enc
- Ранее являвшийся сторонним модулем, он поддерживает интернационализацию в модулях фильтров на основе libxml2 (с учетом разметки).
-
mod_macro (доступно с версии 2.4.5)
- Предоставьте макросы в файлах конфигурации.
-
mod_proxy_wstunnel (доступно с версии 2.4.5)
- Поддержка туннелей веб-сокетов.
-
mod_authnz_fcgi (доступно с 2.4.10)
- Включите приложения-авторизаторы FastCGI для аутентификации и/или авторизации клиентов.
-
mod_http2 (доступно с 2.4.17)
- Поддержка транспортного уровня HTTP/2.
-
mod_proxy_hcheck (доступно с 2.4.21)
- Поддержка независимых динамических проверок работоспособности удаленных внутренних прокси-серверов.
Усовершенствования модуля
-
mod_ssl
-
mod_ssl теперь можно настроить для использования сервера OCSP для проверки статуса проверки сертификата клиента. Ответчик по умолчанию настраивается вместе с решением о том, следует ли предпочесть ответчик, указанный в самом клиентском сертификате.
-
mod_ssl теперь также поддерживает сшивание OCSP, когда сервер заранее получает подтверждение OCSP своего сертификата и передает его клиенту во время рукопожатия.
-
mod_ssl теперь можно настроить обмен данными сеанса SSL между серверами через memcached
- Ключи EC теперь поддерживаются в дополнение к RSA и DSA.
- Поддержка TLS-SRP (доступна в версии 2.4.4 и более поздних).
-
mod_proxy
- Директива
ProxyPass теперь наиболее оптимально настроена внутри
блока Location или
LocationMatch
и предлагает значительное преимущество в производительности по сравнению с традиционным синтаксисом с двумя параметрами, когда присутствует в больших количествах.
- Исходный адрес, используемый для прокси-запросов, теперь можно настроить.
- Поддержка сокетов домена Unix для серверной части (доступно в версии 2.4.7 и более поздних).
-
mod_proxy_balancer
- Дополнительные изменения конфигурации во время выполнения для BalancerMembers через balancer-manager
- Дополнительные BalancerMembers могут быть добавлены во время выполнения через balancer-manager.
- Конфигурация во время выполнения подмножества параметров балансировщика
- BalancerMembers можно настроить на «Слив», чтобы они реагировали только на существующие закрепленные сеансы, что позволяет изящно перевести их в автономный режим.
- Настройки балансировщика могут сохраняться после перезапуска.
-
mod_cache
- Фильтр
mod_cache CACHE можно дополнительно вставить в заданную точку цепочки фильтров, чтобы обеспечить точный контроль над кэшированием.
-
mod_cache теперь может кэшировать запросы HEAD.
- Там, где это возможно,
mod_cache директивы теперь можно устанавливать для каждого каталога, а не для каждого сервера.
- Базовый URL-адрес кэшированных URL-адресов можно настроить, чтобы кластер кэшей мог использовать один и тот же префикс URL-адреса конечной точки.
-
mod_cache теперь может обслуживать устаревшие кэшированные данные, когда сервер недоступен (ошибка 5xx).
-
mod_cache теперь можно вставлять HIT/MISS/REVALIDATE в заголовок X-Cache.
-
mod_include
- Поддержка атрибута «onerror» в элементе «include», что позволяет обслуживать документ об ошибке при ошибке вместо строки ошибки по умолчанию.
-
mod_cgi , mod_include ,
mod_isapi , ...
- Преобразование заголовков в переменные среды является более строгим, чем раньше, чтобы смягчить некоторые возможные атаки с использованием межсайтовых сценариев посредством внедрения заголовков. Заголовки, содержащие недопустимые символы (включая символы подчеркивания), теперь автоматически удаляются. Переменные среды в Apache содержат несколько указаний о том, как обойти сломанные устаревшие клиенты, которым требуются такие заголовки. (Это влияет на все модули, которые используют эти переменные среды.)
-
mod_authz_core Логические контейнеры авторизации
- Расширенную логику авторизации теперь можно указать с помощью
Require директивы и связанных директив контейнера, таких как
<RequireAll> .
-
mod_rewrite
-
mod_rewrite добавляет [QSD]
(отбрасывание строки запроса) и [END] флаги для
RewriteRule упрощения распространенных сценариев перезаписи.
- Добавляет возможность использовать сложные логические выражения в файлах
RewriteCond .
- Позволяет использовать запросы SQL в качестве
RewriteMap функций.
-
mod_ldap , mod_authnz_ldap
-
mod_authnz_ldap добавлена поддержка вложенных групп.
-
mod_ldap добавляет
LDAPConnectionPoolTTL ,
LDAPTimeout и другие улучшения в обработке тайм-аутов. Это особенно полезно для установок, в которых брандмауэр с отслеживанием состояния отбрасывает бездействующие соединения с сервером LDAP.
-
mod_ldap добавляет
LDAPLibraryDebug в журнал отладочную информацию, предоставленную используемым набором инструментов LDAP.
-
mod_info
-
mod_info теперь может сбрасывать предварительно проанализированную конфигурацию на стандартный вывод во время запуска сервера.
-
mod_auth_basic
- Новый универсальный механизм подделки базовой аутентификации (доступен в версии 2.4.5 и более поздних).
Усовершенствования программы
-
fcgistarter
- Новая утилита запуска демона FastCGI
-
htcacheclean
- Текущие кэшированные URL-адреса теперь могут быть перечислены с дополнительными метаданными.
- Разрешить явное удаление отдельных кэшированных URL-адресов из кэша.
- Размеры файлов теперь можно округлить до заданного размера блока, благодаря чему ограничения размера больше соответствуют реальному размеру на диске.
- Размер кэша теперь может быть ограничен количеством инодов вместо или в дополнение к ограничению размером файлов на диске.
-
rotatelogs
- Теперь можно создать ссылку на текущий файл журнала.
- Теперь может вызывать пользовательский скрипт после поворота.
-
htpasswd , htdbm
- Поддержка алгоритма bcrypt (доступно в версии 2.4.4 и выше).
Документация
- mod_rewrite
- Документация
mod_rewrite была реорганизована и почти полностью переписана с упором на примеры и распространенное использование, а также на то, чтобы показать вам, когда другие решения более уместны. Руководство по перезаписи теперь является разделом верхнего уровня с гораздо большей детализацией и лучшей организацией.
- mod_ssl
- Документация
mod_ssl была значительно расширена, добавлено больше примеров на начальном уровне, в дополнение к предыдущему вниманию к техническим деталям.
- Руководство по кэшированию
- Руководство по кэшированию было переписано, чтобы правильно различать функции кэширования HTTP/1.1 RFC2616, предоставляемые
mod_cache , и общее кэширование ключей/значений, обеспечиваемое интерфейсом socache, а также охватывать специализированное кэширование, обеспечиваемое такими механизмами, как mod_file_cache .
Изменения разработчика модуля
- Добавлен хук проверки конфигурации
-
check_config Добавлен новый хук , который проходит между хуками pre_config и open_logs
. Он также запускается перед test_config хуком, когда -t параметр передается
httpd . Ловушка check_config позволяет модулям просматривать взаимозависимые значения директив конфигурации и корректировать их, пока сообщения все еще могут записываться в консоль. Таким образом, пользователь может быть предупрежден о проблемах с неправильной конфигурацией до того, как основная open_logs функция ловушки перенаправит вывод консоли в журнал ошибок.
- Добавлен синтаксический анализатор выражений
- Теперь у нас есть анализатор выражений общего назначения, API которого представлен в ap_expr.h . Это адаптировано из синтаксического анализатора выражений, ранее реализованного в
mod_ssl .
- Логические контейнеры авторизации
- Модули авторизации теперь регистрируются в качестве провайдера через ap_register_auth_provider() для поддержки расширенной логики авторизации, такой как
<RequireAll> .
- Интерфейс кэширования малых объектов
- Заголовок ap_socache.h предоставляет интерфейс на основе поставщика для кэширования небольших объектов данных, основанный на предыдущей реализации кэша
mod_ssl сеанса. В настоящее время поддерживаются поставщики, использующие циклический буфер с общей памятью, файлы dbm на диске и распределенный кэш памяти.
- Добавлен хук состояния кэша
- Модуль
mod_cache теперь включает новый
cache_status хук, который вызывается, когда становится известно решение о кэшировании. Предоставляется реализация по умолчанию, которая добавляет к ответу необязательный заголовок X-Cache и
. X-Cache-Detail
Документация для разработчиков содержит подробный список изменений API.
|
|