Apache HTTP Server Version 2.1
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.
mod_cache
, mod_disk_cache
, and
mod_mem_cache
have undergone a lot of changes, and
are now considered production-quality. htcacheclean
has been introduced to clean up mod_disk_cache
setups.prefork
, worker
and
event
MPMs now allow httpd
to be shutdown gracefully via the
graceful-stop
signal. The GracefulShutdownTimeout
directive
has been added to specify an optional timeout, after which
httpd
will terminate regardless of the status
of any requests being served.mod_proxy_balancer
module provides
load balancing services for mod_proxy
.
The new mod_proxy_ajp
module adds support for the
Apache JServ Protocol version 1.3
used by
Apache Tomcat.httpd
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.event
MPM uses a seperate 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_authnz_ldap
mod_auth_ldap
module to the 2.2 Authn/Authz
framework. New features include using LDAP attribute values and
complicated search filters in the
Require
directive.mod_info
?config
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
.mod_ssl
APR
and
APR-Util
. For details, see the
APR Website.ap_log_cerror
has been added to log
errors that occure 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
to httpd
.ThreadStackSize
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
, using the
ap_register_output_filter_protocol
or
ap_filter_protocol
calls.pcreposix.h
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_
namespace
from ap_regex.h
. Calls to regcomp
,
regexec
and so on can be replaced by calls to
ap_regcomp
, ap_regcomp
.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.
Apache 2.1 and up provides the ap_dbd
API for
managing database connections (including optimised strategies
for threaded and unthreaded MPMs), while APR 1.2 and up provides
the apr_dbd
API for interacting with the database.
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.