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.

 Core Enhancements
 Core Enhancements New Modules
 New Modules Module Enhancements
 Module Enhancements Program Enhancements
 Program Enhancements Documentation
 Documentation Module Developer Changes
 Module Developer ChangesLoadModule 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_http2 (available since 2.4.17)mod_proxy_http2 (available since 2.4.19)mod_proxymod_proxy_hcheck (available since 2.4.21)mod_brotli (available since 2.4.26)mod_md (available since 2.4.30)mod_proxy_uwsgi (available since 2.4.30)mod_proxy.mod_socache_redis (available since 2.4.39)mod_systemd (available since 2.4.42)Type=notify.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.