Apache HTTP Server Version 2.4

This document describes some of the major changes between the 2.2 and 2.4 versions of the Apache HTTP Server. For new features since version 2.0, see the 2.2 new features document.
LoadModule directive.LogLevel can now be
configured per module and per directory. New levels trace1
to trace8 have been added above the debug log
level.<If>,
<ElseIf>,
and <Else>
sections can be used to set the configuration based on per-request
criteria.SetEnvIfExpr,
RewriteCond,
Header,
<If>,
and others.
KeepAliveTimeout in milliseconds.
AllowOverrideList
directive allows more fine grained control which directives are
allowed in .htaccess files. Define
variables in the configuration, allowing a clearer representation
if the same value is used at many places in the configuration.
mod_proxy_fcgimod_proxymod_proxy_scgimod_proxymod_proxy_expressmod_proxymod_remoteipmod_heartmonitor,
mod_lbmethod_heartbeatmod_proxy_balancer to base loadbalancing decisions
on the number of active connections on the backend servers.mod_proxy_htmlmod_sedmod_substitute, allows
to edit the response body with the full power of sed.mod_auth_formmod_sessionmod_allowmethodsmod_luamod_log_debugmod_buffermod_datamod_ratelimitmod_requestmod_reflectormod_slotmem_shmmod_xml2encmod_macro (available since 2.4.5)mod_proxy_wstunnel (available since 2.4.5)mod_authnz_fcgi (available since 2.4.10)mod_sslmod_ssl can now be configured to use an
OCSP server to check the validation status of a client
certificate. The default responder is configurable, along with
the decision on whether to prefer the responder designated in
the client certificate itself.mod_ssl now also supports OCSP stapling, where the
server pro-actively obtains an OCSP verification of its certificate and
transmits that to the client during the handshake. mod_ssl can now be configured to share SSL Session
data between servers through memcachedmod_proxyProxyPass directive
is now most optimally configured within a
Location or
LocationMatch
block, and offers a significant performance advantage over the traditional
two-parameter syntax when present in large numbers.mod_proxy_balancermod_cachemod_cache CACHE filter can be optionally inserted
at a given point in the filter chain to provide fine control over caching.
mod_cache can now cache HEAD requests.mod_cache directives can now be set
per directory, instead of per server.mod_cache is now capable of serving stale cached
data when a backend is unavailable (error 5xx).mod_cache can now insert HIT/MISS/REVALIDATE into
an X-Cache header.mod_includemod_cgi, mod_include,
mod_isapi, ...mod_authz_core Authorization Logic ContainersRequire directive
and the related container directives, such as
<RequireAll>.mod_rewritemod_rewrite adds the [QSD]
(Query String Discard) and [END] flags for
RewriteRule to
simplify common rewriting scenarios.RewriteCond.RewriteMap functions.mod_ldap, mod_authnz_ldapmod_authnz_ldap adds support for nested groups.mod_ldap adds
LDAPConnectionPoolTTL,
LDAPTimeout, and
other improvements in the handling of timeouts.
This is especially useful for setups where a
stateful firewall drops idle connections to the LDAP server.mod_ldap adds
LDAPLibraryDebug to log
debug information provided by the used LDAP toolkit.mod_infomod_info can now dump the pre-parsed configuration
to stdout during server startup.mod_auth_basicfcgistarterhtcachecleanrotatelogshtpasswd, htdbmmod_rewrite documentation has been
rearranged and almost completely rewritten, with a focus on
examples and common usage, as well as on showing you when other
solutions are more appropriate. The Rewrite
Guide is now a top-level section with much more detail and
better organization.mod_ssl documentation has been greatly
enhanced, with more examples at the getting started level, in
addition to the previous focus on technical details.mod_cache, and the generic
key/value caching provided by the socache
interface, as well as to cover specialised caching provided by
mechanisms such as mod_file_cache.check_config, has been added which runs
between the pre_config and open_logs
hooks. It also runs before the test_config hook
when the -t option is passed to
httpd. The check_config hook
allows modules to review interdependent configuration directive
values and adjust them while messages can still be logged to the
console. The user can thus be alerted to misconfiguration problems
before the core open_logs hook function redirects
console output to the error log.mod_ssl.<RequireAll>.mod_ssl session cache.
Providers using a shared-memory cyclic buffer, disk-based dbm
files, and a memcache distributed cache are currently
supported.mod_cache module now includes a new
cache_status hook, which is called when the caching
decision becomes known. A default implementation is provided
which adds an optional X-Cache and
X-Cache-Detail header to the response.The developer documentation contains a detailed list of API changes.