Apache HTTP Server 2.4 aims for the clouds
The Apache Software Foundation has announced the release of Apache HTTP Server 2.4. The new version is described as "ideally suited for Cloud environments" with improved performance, lower resource usage and better concurrency. The version released is actually 2.4.1 – the first GA release of the 2.4.x branch. The developers said that 2.4.1 is the " best version of Apache HTTP Server available, and encourage users of all prior versions to upgrade".
Among new features at the heart of Apache HTTP Server, is the ability to build MPMs (Multi-Processing Modules) that are loadable and configurable at runtime. Asynchronous I/O support has been incorporated for both the platform and MPMs to make use of. One MPM in particular, the event MPM which reduces thread usage while keeping connections alive, has been moved from experimental to fully supported. The event MPM helps with scaling for modern web applications by reducing active threads; it is considered to be one of the more major enhancements in the HTTP server. Full support for the event MPM brings Apache HTTP Server back into competitive performance with other web servers, such as nginx, which have already been optimised around the scenario of having many inactive connections.
Other changes include being able to set configuration on a per-request basis, a new general purpose expression parser, fine grain control of
.htaccess directives, and the ability to define variables in configuration files to make them more readable. Despite the enhancements, the developers say 2.4.x "tends to use less memory than 2.2.x".
New modules in the release include mod_proxy FastCGI (mod_proxy_fcgi) and SCGI (mod_proxy_scgi) protocol backends, dynamically configured mass reverse proxies with mod_proxy_express, and fixed HTML links in reverse proxies with mod_proxy_html. mod_auth_form and mod_session allow the use of form-based authorisation per session and mod_allowmethods lets administrators restrict certain HTTP methods, without breaking authentication.
It is also now possible to limit bandwidth for clients with mod_ratelimit or to let mod_proxy_balancer make more informed load balancing decisions with mod_heartmonitor and mod_lbmethod_heartbeat. A new experimental module, mod_lua embeds the Lua language into the server for "configuration and small business logic functions".
There are also enhancements to mod_ssl (OCSP validation and stapling), mod_proxy, mod_proxy_balancer (runtime configuration and persistent settings), mod_cache, mod_include, mod_cgi (stricter header to environment variable settings), mod_authz_core, mod_rewrite, mod_ldap, mod_authnz_ldap and mod_info. Other enhancements include a new FastCGI daemon starter, improvements to htcacheclean and rotatelogs, and an overhaul on the entire platform's documentation.
An overview of all the changes in 2.4 is available. The full revision list of changes, from 2.2.x to 2.4.1 is also provided. The source code for Apache HTTP Server 2.4.1 can be downloaded from a selection of mirrors.
The last major release of Apache was in 2005 with the release of Apache HTTP Server 2.2, and since then, there have been 22 minor releases of the 2.2 branch, as well as the release of version 2.3, the development preview branch, also followed by many updates as the 2.4 release was developed.