Overview of new features in Apache HTTP Server 2.2
This document describes some of the major changes between the 2.0 and 2.2 versions of the Apache HTTP Server. For new features since version 1.3, see the 2.0 new features document.
, and modmemcache(already removed from 2.3/2.4) have undergone a lot of changes, and are now considered production-quality. htcacheclean
has been introduced to clean up modcachedisk
MPMs now allow httpd
to be shutdown gracefully via the graceful-stop
directive has been added to specify an optional timeout, after which httpd
will terminate regardless of the status of any requests being served.modproxybalancer
module provides load balancing services for mod_proxy
module adds support for the Apache JServ Protocol version 1.3
can be configured to use a system installation of PCRE by passing the --with-pcre
flag to configure.mod_filter
introduces dynamic configuration to the output filter chain. It enables filters to be conditionally inserted, based on any Request or Response header or environment variable, and dispenses with the more problematic dependencies and ordering problems in the 2.0 architecture.httpd
is now built with support for files larger than 2GB on modern 32-bit Unix systems. Support for handling >2GB request bodies has also been added.event
MPM uses a separate thread to handle Keep Alive requests and accepting connections. Keep Alive requests have traditionally required httpd to dedicate a worker to handle it. This dedicated worker could not be used again until the Keep Alive timeout was reached.mod_dbd
, together with the apr_dbd
framework, brings direct SQL support to modules that need it. Supports connection pooling in threaded MPMs.mod_auth
is now split into modauthbasic
is now called modauthndbm
has been renamed modauthzhost
. There is also a new modauthnalias(already removed from 2.3/2.4) module for simplifying certain authentication configurations. modauthnzldap
module to the 2.2 Authn/Authz
framework. New features include using LDAP attribute values and complicated search filters in the Require
argument which will show the configuration directives as parsed by Apache, including their file name and line number. The module also shows the order of all request hooks and additional build information, similar to httpd -V
to avoid user confusion.httpd
has been added that lists all modules that are loaded based on the current configuration. Unlike the -l
option, this list includes DSOs loaded via mod_so
. For details, see the modauth*
-> Modules that implement an HTTP authentication mechanismmodauthn*
-> Modules that provide a backend authentication providermodauthz*
-> Modules that implement authorization (or access)modauthnz*
-> Module that implements both authentication & authorizationaplogcerror
has been added to log errors that occur with the client's connection. When logged, the message includes the client IP address.test_config
has been added to aid modules that want to execute special code only when the user passes -t
has been added to set the stack size on all threaded MPMs. This is required for some third-party modules on platforms with small default thread stack size.mod_filter
header is no longer available; it is replaced by the new ap_regex.h
header. The POSIX.2 regex.h
implementation exposed by the old header is now available under the ap_
and so on can be replaced by calls to ap_regcomp
Apache 2.1 and later provides the ap_dbd
API for managing database connections (including optimised strategies for threaded and unthreaded MPMs), while APR 1.2 and later provides the apr_dbd
New modules SHOULD now use these APIs for all SQL database operations. Existing applications SHOULD be upgraded to use it where feasible, either transparently or as a recommended option to their users.
Modules | Directives | FAQ | Glossary | Sitemap
Apache HTTP Server Version 2.4
Overview of new features in Apache HTTP Server 2.2
Available Languages: en | fr | ko | pt-br | tr
Module Enhancements
Program Enhancements
Module Developer Changes
With Apache 1.x and 2.0, modules requiring an SQL backend had to take responsibility for managing it themselves. Apart from reinventing the wheel, this can be very inefficient, for example when several modules each maintain their own connections.