]> granicus.if.org Git - apache/blob - docs/manual/new_features_2_4.html.en
Rebuild
[apache] / docs / manual / new_features_2_4.html.en
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <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>
15 <p class="apache">Apache HTTP Server Version 2.5</p>
16 <img alt="" src="./images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
18 <div id="path">
19 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <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>
20 <div class="toplang">
21 <p><span>Available Languages: </span><a href="./en/new_features_2_4.html" title="English">&nbsp;en&nbsp;</a> |
22 <a href="./fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
23 <a href="./tr/new_features_2_4.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
24 </div>
25
26   <p>This document describes some of the major changes between the
27      2.2 and 2.4 versions of the Apache HTTP Server. For new features since
28      version 2.0, see the <a href="new_features_2_2.html">2.2 new features</a>
29      document.</p>
30 </div>
31 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#core">Core Enhancements</a></li>
32 <li><img alt="" src="./images/down.gif" /> <a href="#newmods">New Modules</a></li>
33 <li><img alt="" src="./images/down.gif" /> <a href="#module">Module Enhancements</a></li>
34 <li><img alt="" src="./images/down.gif" /> <a href="#programs">Program Enhancements</a></li>
35 <li><img alt="" src="./images/down.gif" /> <a href="#documentation">Documentation</a></li>
36 <li><img alt="" src="./images/down.gif" /> <a href="#developer">Module Developer Changes</a></li>
37 </ul></div>
38 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
39 <div class="section">
40 <h2><a name="core" id="core">Core Enhancements</a></h2>
41     
42     <dl>
43       <dt>Loadable MPMs</dt>
44       <dd>Multiple MPMs can now be built as loadable modules at compile time.
45       The MPM of choice can be configured at run time.</dd>
46
47       <dt>Event MPM</dt>
48       <dd>The Event MPM is no longer experimental but is now fully supported.</dd>
49
50       <dt>Asynchronous support</dt>
51       <dd>Better support for asynchronous read/write for supporting MPMs and
52       platforms.</dd>
53
54       <dt>Per-module and per-directory LogLevel configuration</dt>
55       <dd>The <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> can now be
56       configured per module and per directory.  New levels <code>trace1</code>
57       to <code>trace8</code> have been added above the <code>debug</code> log
58       level.</dd>
59
60       <dt>Per-request configuration sections</dt>
61       <dd><code class="directive"><a href="./mod/core.html#if">&lt;If&gt;</a></code>,
62           <code class="directive"><a href="./mod/core.html#elseif">&lt;ElseIf&gt;</a></code>,
63           and <code class="directive"><a href="./mod/core.html#else">&lt;Else&gt;</a></code>
64           sections can be used to set the configuration based on per-request
65           criteria.</dd>
66
67       <dt>General-purpose expression parser</dt>
68       <dd>A new expression parser allows to specify
69           <a href="expr.html">complex conditions</a> using a common syntax
70           in directives like
71           <code class="directive"><a href="./mod/mod_setenvif.html#setenvifexpr">SetEnvIfExpr</a></code>,
72           <code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>,
73           <code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code>,
74           <code class="directive"><a href="./mod/core.html#if">&lt;If&gt;</a></code>,
75           and others.
76       </dd>
77
78       <dt>KeepAliveTimeout in milliseconds</dt>
79       <dd>It is now possible to specify <code class="directive"><a href="./mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> in milliseconds.
80       </dd>
81
82       <dt>NameVirtualHost directive</dt>
83       <dd>No longer needed and is now deprecated.</dd>
84
85       <dt>Override Configuration</dt>
86       <dd>The new <code class="directive"><a href="./mod/core.html#allowoverridelist">AllowOverrideList</a></code>
87           directive allows more fine grained control which directives are
88           allowed in <code>.htaccess</code> files. </dd>
89
90       <dt>Config file variables</dt>
91       <dd>It is now possible to <code class="directive"><a href="./mod/core.html#define">Define</a></code>
92           variables in the configuration, allowing a clearer representation
93           if the same value is used at many places in the configuration.
94       </dd>
95
96       <dt>Reduced memory usage</dt>
97       <dd>Despite many new features, 2.4.x tends to use less memory than
98       2.2.x.</dd>
99
100     </dl>
101   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
102 <div class="section">
103 <h2><a name="newmods" id="newmods">New Modules</a></h2>
104     
105     <dl>
106       <dt><code class="module"><a href="./mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></dt>
107       <dd>FastCGI Protocol backend for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dd>
108
109       <dt><code class="module"><a href="./mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code></dt>
110       <dd>SCGI Protocol backend for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dd>
111
112       <dt><code class="module"><a href="./mod/mod_proxy_express.html">mod_proxy_express</a></code></dt>
113       <dd>Provides dynamically configured mass reverse proxies for
114       <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dd>
115
116       <dt><code class="module"><a href="./mod/mod_remoteip.html">mod_remoteip</a></code></dt>
117       <dd>Replaces the apparent client remote IP address and hostname for the request
118       with the IP address list presented by a proxies or a load balancer via
119       the request headers.</dd>
120
121       <dt><code class="module"><a href="./mod/mod_heartmonitor.html">mod_heartmonitor</a></code>,
122           <code class="module"><a href="./mod/mod_lbmethod_heartbeat.html">mod_lbmethod_heartbeat</a></code></dt>
123       <dd>Allow <code class="module"><a href="./mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> to base loadbalancing decisions
124       on the number of active connections on the backend servers.</dd>
125
126       <dt><code class="module"><a href="./mod/mod_proxy_html.html">mod_proxy_html</a></code></dt>
127       <dd>Formerly a third-party module, this supports fixing of HTML
128       links in a reverse proxy situation, where the backend generates
129       URLs that are not valid for the proxy's clients.</dd>
130
131       <dt><code class="module"><a href="./mod/mod_sed.html">mod_sed</a></code></dt>
132       <dd>An advanced replacement of <code class="module"><a href="./mod/mod_substitute.html">mod_substitute</a></code>, allows
133       to edit the response body with the full power of sed.</dd>
134
135       <dt><code class="module"><a href="./mod/mod_auth_form.html">mod_auth_form</a></code></dt>
136       <dd>Allows to do form-based authentication.</dd>
137
138       <dt><code class="module"><a href="./mod/mod_session.html">mod_session</a></code></dt>
139       <dd>Allows to keep session state for clients, using cookie or
140       database storage.</dd>
141
142       <dt><code class="module"><a href="./mod/mod_allowmethods.html">mod_allowmethods</a></code></dt>
143       <dd>New module to restrict certain HTTP methods without interfering with
144       authentication or authorization.</dd>
145
146       <dt><code class="module"><a href="./mod/mod_lua.html">mod_lua</a></code></dt>
147       <dd>Embeds the <a href="http://www.lua.org/">Lua</a> language into httpd,
148       for configuration and small business logic functions. (Experimental)</dd>
149
150       <dt><code class="module"><a href="./mod/mod_log_debug.html">mod_log_debug</a></code></dt>
151       <dd>Allows to add customizable debug logging at different phases of the
152       request processing.</dd>
153
154       <dt><code class="module"><a href="./mod/mod_buffer.html">mod_buffer</a></code></dt>
155       <dd>Provides for buffering the input and output filter stacks</dd>
156
157       <dt><code class="module"><a href="./mod/mod_data.html">mod_data</a></code></dt>
158       <dd>Convert response body into an RFC2397 data URL</dd>
159
160       <dt><code class="module"><a href="./mod/mod_ratelimit.html">mod_ratelimit</a></code></dt>
161       <dd>Provides Bandwidth Rate Limiting for Clients</dd>
162
163       <dt><code class="module"><a href="./mod/mod_request.html">mod_request</a></code></dt>
164       <dd>Provides Filters to handle and make available HTTP request bodies</dd>
165
166       <dt><code class="module"><a href="./mod/mod_reflector.html">mod_reflector</a></code></dt>
167       <dd>Provides Reflection of a request body as a response via the output filter stack.</dd>
168
169       <dt><code class="module"><a href="./mod/mod_slotmem_shm.html">mod_slotmem_shm</a></code></dt>
170       <dd>Provides a Slot-based shared memory provider (ala the scoreboard).</dd>
171
172       <dt><code class="module"><a href="./mod/mod_xml2enc.html">mod_xml2enc</a></code></dt>
173       <dd>Formerly a third-party module, this supports internationalisation
174       in libxml2-based (markup-aware) filter modules.</dd>
175
176     </dl>
177   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
178 <div class="section">
179 <h2><a name="module" id="module">Module Enhancements</a></h2>
180     
181     <dl>
182       <dt><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code></dt>
183
184       <dd><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> can now be configured to use an
185       OCSP server to check the validation status of a client
186       certificate.  The default responder is configurable, along with
187       the decision on whether to prefer the responder designated in
188       the client certificate itself.</dd>
189
190       <dd><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> now also supports OCSP stapling, where the
191       server pro-actively obtains an OCSP verification of its certificate and
192       transmits that to the client during the handshake. </dd>
193
194       <dd><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> can now be configured to share SSL Session
195       data between servers through memcached</dd>
196
197       <dd>EC keys are now supported in addition to RSA and DSA.</dd>
198
199       <dt><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dt>
200
201       <dd>The <code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code> directive
202       is now most optimally configured within a
203       <code class="directive"><a href="./mod/core.html#location">Location</a></code> or
204       <code class="directive"><a href="./mod/core.html#locationmatch">LocationMatch</a></code>
205       block, and offers a significant performance advantage over the traditional
206       two-parameter syntax when present in large numbers.</dd>
207   <dd>The source address used for proxy requests is now configurable.</dd>
208
209       <dt><code class="module"><a href="./mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></dt>
210
211       <dd>More runtime configuration changes for BalancerMembers via balancer-manager</dd>
212
213       <dd>Additional BalancerMembers can be added at runtime via balancer-manager</dd>
214
215       <dd>Runtime configuration of a subset of Balancer parameters</dd>
216
217       <dd>BalancerMembers can be set to 'Drain' so that they only respond to existing sticky
218       sessions, allowing them to be taken gracefully offline.</dd>
219
220       <dd>Balancer settings can be persistent after restarts.</dd>
221
222       <dt><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code></dt>
223
224       <dd>The <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> CACHE filter can be optionally inserted
225       at a given point in the filter chain to provide fine control over caching.
226       </dd>
227
228       <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> can now cache HEAD requests.</dd>
229
230       <dd>Where possible, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> directives can now be set
231       per directory, instead of per server.</dd>
232
233       <dd>The base URL of cached URLs can be customised, so that a cluster of
234       caches can share the same endpoint URL prefix.</dd>
235
236       <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> is now capable of serving stale cached
237       data when a backend is unavailable (error 5xx).</dd>
238
239       <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> can now insert HIT/MISS/REVALIDATE into
240       an X-Cache header.</dd>
241
242       <dt><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></dt>
243       <dd>Support for the 'onerror' attribute within an 'include' element,
244       allowing an error document to be served on error instead of the default
245       error string.</dd>
246
247       <dt><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="./mod/mod_include.html">mod_include</a></code>,
248           <code class="module"><a href="./mod/mod_isapi.html">mod_isapi</a></code>, ...</dt>
249       <dd>Translation of headers to environment variables is more strict than
250       before to mitigate some possible cross-site-scripting attacks via header
251       injection. Headers containing invalid characters (including underscores)
252       are now silently dropped. <a href="env.html">Environment Variables
253       in Apache</a> has some pointers on how to work around broken legacy
254       clients which require such headers. (This affects all modules which
255       use these environment variables.)</dd>
256
257       <dt><code class="module"><a href="./mod/mod_authz_core.html">mod_authz_core</a></code> Authorization Logic Containers</dt>
258
259       <dd>Advanced authorization logic may now be specified using the
260           <code class="directive"><a href="./mod/mod_authz_core.html#require">Require</a></code> directive
261           and the related container directives, such as
262           <code class="directive"><a href="./mod/mod_authz_core.html#requireall">&lt;RequireAll&gt;</a></code>.</dd>
263
264       <dt><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></dt>
265       <dd><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> adds the <code>[QSD]</code>
266           (Query String Discard) and <code>[END]</code> flags for
267           <code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> to
268           simplify common rewriting scenarios.</dd>
269       <dd>Adds the possibility to use complex boolean expressions in <code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>.</dd>
270       <dd>Allows to use SQL queries as <code class="directive"><a href="./mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> functions.</dd>
271
272       <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>
273       <dd><code class="module"><a href="./mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> adds support for nested groups.</dd>
274       <dd><code class="module"><a href="./mod/mod_ldap.html">mod_ldap</a></code> adds
275           <code class="directive"><a href="./mod/mod_ldap.html#ldapconnectionpoolttl">LDAPConnectionPoolTTL</a></code>,
276           <code class="directive"><a href="./mod/mod_ldap.html#ldaptimeout">LDAPTimeout</a></code>, and
277           other improvements in the handling of timeouts.
278           This is especially useful for setups where a
279           stateful firewall drops idle connections to the LDAP server.</dd>
280       <dd><code class="module"><a href="./mod/mod_ldap.html">mod_ldap</a></code> adds
281           <code class="directive"><a href="./mod/mod_ldap.html#ldaplibrarydebug">LDAPLibraryDebug</a></code> to log
282           debug information provided by the used LDAP toolkit.</dd>
283
284       <dt><code class="module"><a href="./mod/mod_info.html">mod_info</a></code></dt>
285       <dd><code class="module"><a href="./mod/mod_info.html">mod_info</a></code> can now dump the pre-parsed configuration
286           to stdout during server startup.</dd>
287
288
289     </dl>
290   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
291 <div class="section">
292 <h2><a name="programs" id="programs">Program Enhancements</a></h2>
293     
294     <dl>
295         <dt>fcgistarter</dt>
296         <dd>New FastCGI deamon starter utility</dd>
297
298         <dt>htcacheclean</dt>
299         <dd>Current cached URLs can now be listed, with optional metadata
300         included.</dd>
301         <dd>Allow explicit deletion of individual cached URLs from the
302         cache.</dd>
303         <dd>File sizes can now be rounded up to the given block size, making
304         the size limits map more closely to the real size on disk.</dd>
305         <dd>Cache size can now be limited by the number of inodes, instead
306         of or in addition to being limited by the size of the files on
307         disk.</dd>
308
309         <dt>rotatelogs</dt>
310         <dd>May now create a link to the current log file.</dd>
311         <dd>May now invoke a custom post-rotate script.</dd>
312     </dl>
313   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
314 <div class="section">
315 <h2><a name="documentation" id="documentation">Documentation</a></h2>
316     
317     <dl>
318         <dt>mod_rewrite</dt>
319         <dd>The <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> documentation has been
320         rearranged and almost completely rewritten, with a focus on
321         examples and common usage, as well as on showing you when other
322         solutions are more appropriate. The <a href="rewrite/">Rewrite
323         Guide</a> is now a top-level section with much more detail and
324         better organization.</dd>
325
326         <dt>mod_ssl</dt>
327         <dd>The <code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> documentation has been greatly
328         enhanced, with more examples at the getting started level, in
329         addition to the previous focus on technical details.</dd>
330
331         <dt>Caching Guide</dt>
332         <dd>The <a href="caching.html">Caching Guide</a> has been rewritten
333         to properly distinguish between the RFC2616 HTTP/1.1 caching
334         features provided by <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>, and the generic
335         key/value caching provided by the <a href="socache.html">socache</a>
336         interface, as well as to cover specialised caching provided by
337         mechanisms such as <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code>.</dd>
338
339     </dl>
340   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
341 <div class="section">
342 <h2><a name="developer" id="developer">Module Developer Changes</a></h2>
343     
344     <dl>
345       <dt>Check Configuration Hook Added</dt>
346
347       <dd>A new hook, <code>check_config</code>, has been added which runs
348           between the <code>pre_config</code> and <code>open_logs</code>
349           hooks.  It also runs before the <code>test_config</code> hook
350           when the <code>-t</code> option is passed to
351           <code class="program"><a href="./programs/httpd.html">httpd</a></code>.  The <code>check_config</code> hook
352           allows modules to review interdependent configuration directive
353           values and adjust them while messages can still be logged to the
354           console.  The user can thus be alerted to misconfiguration problems
355           before the core <code>open_logs</code> hook function redirects
356           console output to the error log.</dd>
357
358       <dt>Expression Parser Added</dt>
359
360       <dd>We now have a general-purpose expression parser, whose API is
361           exposed in <var>ap_expr.h</var>.  This is adapted from the
362           expression parser previously implemented in
363           <code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code>.</dd>
364
365       <dt>Authorization Logic Containers</dt>
366
367       <dd>Authorization modules now register as a provider, via
368       ap_register_auth_provider(), to support advanced authorization logic,
369       such as <code class="directive"><a href="./mod/mod_authz_core.html#requireall">&lt;RequireAll&gt;</a></code>.</dd>
370
371       <dt>Small-Object Caching Interface</dt>
372
373       <dd>The <var>ap_socache.h</var> header exposes a provider-based
374       interface for caching small data objects, based on the previous
375       implementation of the <code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> session cache.
376       Providers using a shared-memory cyclic buffer, disk-based dbm
377       files, and a memcache distributed cache are currently
378       supported.</dd>
379
380       <dt>Cache Status Hook Added</dt>
381
382       <dd>The <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> module now includes a new
383       <code>cache_status</code> hook, which is called when the caching
384       decision becomes known. A default implementation is provided
385       which adds an optional <code>X-Cache</code> and
386       <code>X-Cache-Detail</code> header to the response.</dd>
387     </dl>
388
389     <p>The developer documentation contains a
390     <a href="developer/new_api_2_4.html">detailed list of API changes</a>.</p>
391   </div></div>
392 <div class="bottomlang">
393 <p><span>Available Languages: </span><a href="./en/new_features_2_4.html" title="English">&nbsp;en&nbsp;</a> |
394 <a href="./fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
395 <a href="./tr/new_features_2_4.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
396 </div><div id="footer">
397 <p class="apache">Copyright 2012 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>
398 <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>
399 </body></html>