<title>Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
+<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
+<script src="./style/scripts/prettify.js" type="text/javascript">
+</script>
+
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p>
-<p class="apache">Apache HTTP Server Version 2.3</p>
+<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p>
+<p class="apache">Apache HTTP Server Version 2.5</p>
<img alt="" src="./images/feather.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.3</a></div><div id="page-content"><div id="preamble"><h1>Overview of new features in Apache HTTP Server 2.4</h1>
+<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Overview of new features in Apache HTTP Server 2.4</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="./en/new_features_2_4.html" title="English"> en </a> |
-<a href="./fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p>
+<a href="./fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
+<a href="./tr/new_features_2_4.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
<p>This document describes some of the major changes between the
<li><img alt="" src="./images/down.gif" /> <a href="#newmods">New Modules</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#module">Module Enhancements</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#programs">Program Enhancements</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#documentation">Documentation</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#developer">Module Developer Changes</a></li>
-</ul></div>
+</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="core" id="core">Core Enhancements</a></h2>
<dl>
- <dt>KeepAliveTimeout in milliseconds</dt>
- <dd>It is now possible to specify <code class="directive"><a href="./mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> in milliseconds.
- </dd>
-
- <dt>Loadable MPMs</dt>
- <dd>Multiple MPMs can now be built as loadable modules at compile time.
+ <dt>Run-time Loadable MPMs</dt>
+ <dd>Multiple MPMs can now be <a href="mpm.html#dynamic">built
+ as loadable modules</a> at compile time.
The MPM of choice can be configured at run time.</dd>
- <dt>Per-module and per-directory LogLevel configuration</dt>
- <dd>The <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> can now be
- configured per module and per directory. New levels <code>trace1</code>
- to <code>trace8</code> have been added above the <code>debug</code> log
- level.</dd>
-
<dt>Event MPM</dt>
- <dd>The Event MPM is no longer experimental but is now fully supported.</dd>
+ <dd>The <a href="mod/event.html">Event MPM</a> is no longer experimental
+ but is now fully supported.</dd>
<dt>Asynchronous support</dt>
<dd>Better support for asynchronous read/write for supporting MPMs and
platforms.</dd>
+ <dt>Per-module and per-directory LogLevel configuration</dt>
+ <dd>The <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> can now be
+ configured per module and per directory. New levels <code>trace1</code>
+ to <code>trace8</code> have been added above the <code>debug</code> log
+ level.</dd>
+
<dt>Per-request configuration sections</dt>
- <dd><<code class="directive"><a href="./mod/core.html#if">If</a></code>> sections can be used to
- set the configuration based on per-request criteria</dd>
+ <dd><code class="directive"><a href="./mod/core.html#if"><If></a></code>,
+ <code class="directive"><a href="./mod/core.html#elseif"><ElseIf></a></code>,
+ and <code class="directive"><a href="./mod/core.html#else"><Else></a></code>
+ sections can be used to set the configuration based on per-request
+ criteria.</dd>
+
+ <dt>General-purpose expression parser</dt>
+ <dd>A new expression parser allows to specify
+ <a href="expr.html">complex conditions</a> using a common syntax
+ in directives like
+ <code class="directive"><a href="./mod/mod_setenvif.html#setenvifexpr">SetEnvIfExpr</a></code>,
+ <code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>,
+ <code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code>,
+ <code class="directive"><a href="./mod/core.html#if"><If></a></code>,
+ and others.
+ </dd>
+
+ <dt>KeepAliveTimeout in milliseconds</dt>
+ <dd>It is now possible to specify <code class="directive"><a href="./mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> in milliseconds.
+ </dd>
<dt>NameVirtualHost directive</dt>
<dd>No longer needed and is now deprecated.</dd>
+ <dt>Override Configuration</dt>
+ <dd>The new <code class="directive"><a href="./mod/core.html#allowoverridelist">AllowOverrideList</a></code>
+ directive allows more fine grained control which directives are
+ allowed in <code>.htaccess</code> files. </dd>
+
+ <dt>Config file variables</dt>
+ <dd>It is now possible to <code class="directive"><a href="./mod/core.html#define">Define</a></code>
+ variables in the configuration, allowing a clearer representation
+ if the same value is used at many places in the configuration.
+ </dd>
+
+ <dt>Reduced memory usage</dt>
+ <dd>Despite many new features, 2.4.x tends to use less memory than
+ 2.2.x.</dd>
+
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="newmods" id="newmods">New Modules</a></h2>
<dl>
- <dt><code class="module"><a href="./mod/mod_allowmethods.html">mod_allowmethods</a></code></dt>
- <dd>New module to restrict certain HTTP methods without interfering with
- authentication or authorization.</dd>
-
- <dt><code class="module"><a href="./mod/mod_buffer.html">mod_buffer</a></code></dt>
- <dd>Provides for buffering the input and output filter stacks</dd>
-
- <dt><code class="module"><a href="./mod/mod_data.html">mod_data</a></code></dt>
- <dd>Convert response body into an RFC2397 data URL</dd>
-
- <dt><code class="module"><a href="./mod/mod_lua.html">mod_lua</a></code></dt>
- <dd>Embeds the <a href="http://www.lua.org/">Lua</a> language into httpd,
- for configuration and small business logic functions.</dd>
-
- <dt><code class="module"><a href="./mod/mod_proxy_express.html">mod_proxy_express</a></code></dt>
- <dd>Provides dynamically configured mass reverse proxies for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dd>
-
<dt><code class="module"><a href="./mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></dt>
<dd>FastCGI Protocol backend for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><code class="module"><a href="./mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code></dt>
<dd>SCGI Protocol backend for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dd>
- <dt><code class="module"><a href="./mod/mod_ratelimit.html">mod_ratelimit</a></code></dt>
- <dd>Provides Bandwidth Rate Limiting for Clients</dd>
-
- <dt><code class="module"><a href="./mod/mod_reflector.html">mod_reflector</a></code></dt>
- <dd>Provides Reflection of a request body as a response via the output filter stack.</dd>
+ <dt><code class="module"><a href="./mod/mod_proxy_express.html">mod_proxy_express</a></code></dt>
+ <dd>Provides dynamically configured mass reverse proxies for
+ <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><code class="module"><a href="./mod/mod_remoteip.html">mod_remoteip</a></code></dt>
<dd>Replaces the apparent client remote IP address and hostname for the request
with the IP address list presented by a proxies or a load balancer via
the request headers.</dd>
- <dt><code class="module"><a href="./mod/mod_reqtimeout.html">mod_reqtimeout</a></code></dt>
- <dd>Set timeout and minimum data rate for receiving requests</dd>
+ <dt><code class="module"><a href="./mod/mod_heartmonitor.html">mod_heartmonitor</a></code>,
+ <code class="module"><a href="./mod/mod_lbmethod_heartbeat.html">mod_lbmethod_heartbeat</a></code></dt>
+ <dd>Allow <code class="module"><a href="./mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> to base loadbalancing decisions
+ on the number of active connections on the backend servers.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_proxy_html.html">mod_proxy_html</a></code></dt>
+ <dd>Formerly a third-party module, this supports fixing of HTML
+ links in a reverse proxy situation, where the backend generates
+ URLs that are not valid for the proxy's clients.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_sed.html">mod_sed</a></code></dt>
+ <dd>An advanced replacement of <code class="module"><a href="./mod/mod_substitute.html">mod_substitute</a></code>, allows
+ to edit the response body with the full power of sed.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_auth_form.html">mod_auth_form</a></code></dt>
+ <dd>Enables form-based authentication.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_session.html">mod_session</a></code></dt>
+ <dd>Enables the use of session state for clients, using cookie or
+ database storage.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_allowmethods.html">mod_allowmethods</a></code></dt>
+ <dd>New module to restrict certain HTTP methods without interfering with
+ authentication or authorization.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_lua.html">mod_lua</a></code></dt>
+ <dd>Embeds the <a href="http://www.lua.org/">Lua</a> language into httpd,
+ for configuration and small business logic functions. (Experimental)</dd>
+
+ <dt><code class="module"><a href="./mod/mod_log_debug.html">mod_log_debug</a></code></dt>
+ <dd>Allows the addition of customizable debug logging at different phases of the
+ request processing.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_buffer.html">mod_buffer</a></code></dt>
+ <dd>Provides for buffering the input and output filter stacks</dd>
+
+ <dt><code class="module"><a href="./mod/mod_data.html">mod_data</a></code></dt>
+ <dd>Convert response body into an RFC2397 data URL</dd>
+
+ <dt><code class="module"><a href="./mod/mod_ratelimit.html">mod_ratelimit</a></code></dt>
+ <dd>Provides Bandwidth Rate Limiting for Clients</dd>
<dt><code class="module"><a href="./mod/mod_request.html">mod_request</a></code></dt>
<dd>Provides Filters to handle and make available HTTP request bodies</dd>
+ <dt><code class="module"><a href="./mod/mod_reflector.html">mod_reflector</a></code></dt>
+ <dd>Provides Reflection of a request body as a response via the output filter stack.</dd>
+
<dt><code class="module"><a href="./mod/mod_slotmem_shm.html">mod_slotmem_shm</a></code></dt>
<dd>Provides a Slot-based shared memory provider (ala the scoreboard).</dd>
- <dt><code class="module"><a href="./mod/mod_log_debug.html">mod_log_debug</a></code></dt>
- <dd>Allows to add customizable debug logging at different phases of the
- request processing.</dd>
-
<dt><code class="module"><a href="./mod/mod_xml2enc.html">mod_xml2enc</a></code></dt>
<dd>Formerly a third-party module, this supports internationalisation
in libxml2-based (markup-aware) filter modules.</dd>
- <dt><code class="module"><a href="./mod/mod_proxy_html.html">mod_proxy_html</a></code></dt>
- <dd>Formerly a third-party module, this supports fixing of HTML
- links in a reverse proxy situation, where the backend generates
- URLs that are not valid for the proxy's clients.</dd>
-
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<dd><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> can now be configured to share SSL Session
data between servers through memcached</dd>
+ <dd>EC keys are now supported in addition to RSA and DSA.</dd>
+
<dt><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dt>
<dd>The <code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code> directive
<code class="directive"><a href="./mod/core.html#locationmatch">LocationMatch</a></code>
block, and offers a significant performance advantage over the traditional
two-parameter syntax when present in large numbers.</dd>
+ <dd>The source address used for proxy requests is now configurable.</dd>
<dt><code class="module"><a href="./mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></dt>
<dd>BalancerMembers can be set to 'Drain' so that they only respond to existing sticky
sessions, allowing them to be taken gracefully offline.</dd>
- <dd>Balancer settings can be persistant after restarts.</dd>
+ <dd>Balancer settings can be persistent after restarts.</dd>
<dt><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code></dt>
+ <dd>The <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> CACHE filter can be optionally inserted
+ at a given point in the filter chain to provide fine control over caching.
+ </dd>
+
<dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> can now cache HEAD requests.</dd>
<dd>Where possible, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> directives can now be set
and the related container directives, such as
<code class="directive"><a href="./mod/mod_authz_core.html#requireall"><RequireAll></a></code>.</dd>
+ <dt><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></dt>
+ <dd><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> adds the <code>[QSD]</code>
+ (Query String Discard) and <code>[END]</code> flags for
+ <code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> to
+ simplify common rewriting scenarios.</dd>
+ <dd>Adds the possibility to use complex boolean expressions in <code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>.</dd>
+ <dd>Allows the use of SQL queries as <code class="directive"><a href="./mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> functions.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_ldap.html">mod_ldap</a></code>, <code class="module"><a href="./mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></dt>
+ <dd><code class="module"><a href="./mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> adds support for nested groups.</dd>
+ <dd><code class="module"><a href="./mod/mod_ldap.html">mod_ldap</a></code> adds
+ <code class="directive"><a href="./mod/mod_ldap.html#ldapconnectionpoolttl">LDAPConnectionPoolTTL</a></code>,
+ <code class="directive"><a href="./mod/mod_ldap.html#ldaptimeout">LDAPTimeout</a></code>, 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.</dd>
+ <dd><code class="module"><a href="./mod/mod_ldap.html">mod_ldap</a></code> adds
+ <code class="directive"><a href="./mod/mod_ldap.html#ldaplibrarydebug">LDAPLibraryDebug</a></code> to log
+ debug information provided by the used LDAP toolkit.</dd>
+
<dt><code class="module"><a href="./mod/mod_info.html">mod_info</a></code></dt>
<dd><code class="module"><a href="./mod/mod_info.html">mod_info</a></code> can now dump the pre-parsed configuration
to stdout during server startup.</dd>
- <dt><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></dt>
- <dd><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> adds the <code>[QSD]</code>
- (Query String Discard) and <code>[END]</code> flags for
- <code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> to
- simplify common rewriting scenarios.</dd>
+
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="programs" id="programs">Program Enhancements</a></h2>
<dl>
- <dt>fcgistarter</dt>
- <dd>FastCGI deamon starter utility</dd>
- <dt>htcacheclean</dt>
+ <dt><code class="program"><a href="./programs/fcgistarter.html">fcgistarter</a></code></dt>
+ <dd>New FastCGI deamon starter utility</dd>
+
+ <dt><code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code></dt>
<dd>Current cached URLs can now be listed, with optional metadata
included.</dd>
<dd>Allow explicit deletion of individual cached URLs from the
<dd>Cache size can now be limited by the number of inodes, instead
of or in addition to being limited by the size of the files on
disk.</dd>
+
+ <dt><code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code></dt>
+ <dd>May now create a link to the current log file.</dd>
+ <dd>May now invoke a custom post-rotate script.</dd>
+ </dl>
+ </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="documentation" id="documentation">Documentation</a></h2>
+
+ <dl>
+ <dt>mod_rewrite</dt>
+ <dd>The <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> 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 <a href="rewrite/">Rewrite
+ Guide</a> is now a top-level section with much more detail and
+ better organization.</dd>
+
+ <dt>mod_ssl</dt>
+ <dd>The <code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> documentation has been greatly
+ enhanced, with more examples at the getting started level, in
+ addition to the previous focus on technical details.</dd>
+
+ <dt>Caching Guide</dt>
+ <dd>The <a href="caching.html">Caching Guide</a> has been rewritten
+ to properly distinguish between the RFC2616 HTTP/1.1 caching
+ features provided by <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>, and the generic
+ key/value caching provided by the <a href="socache.html">socache</a>
+ interface, as well as to cover specialised caching provided by
+ mechanisms such as <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code>.</dd>
+
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="./en/new_features_2_4.html" title="English"> en </a> |
-<a href="./fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2011 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p></div>
+<a href="./fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
+<a href="./tr/new_features_2_4.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
+</div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
+<script type="text/javascript"><!--//--><![CDATA[//><!--
+var comments_shortname = 'httpd';
+var comments_identifier = 'http://httpd.apache.org/docs/trunk/new_features_2_4.html';
+(function(w, d) {
+ if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
+ d.write('<div id="comments_thread"><\/div>');
+ var s = d.createElement('script');
+ s.type = 'text/javascript';
+ s.async = true;
+ s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
+ (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
+ }
+ else {
+ d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
+ }
+})(window, document);
+//--><!]]></script></div><div id="footer">
+<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
+if (typeof(prettyPrint) !== 'undefined') {
+ prettyPrint();
+}
+//--><!]]></script>
</body></html>
\ No newline at end of file