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 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7 This file is generated from xml source: DO NOT EDIT
8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10 <title>Overview of new features in Apache HTTP Server 2.2 - Apache HTTP Server Version 2.5</title>
11 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <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" />
14 <script src="./style/scripts/prettify.min.js" type="text/javascript">
17 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
18 <body id="manual-page"><div id="page-header">
19 <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>
20 <p class="apache">Apache HTTP Server Version 2.5</p>
21 <img alt="" src="./images/feather.png" /></div>
22 <div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
24 <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.2</h1>
26 <p><span>Available Languages: </span><a href="./en/new_features_2_2.html" title="English"> en </a> |
27 <a href="./es/new_features_2_2.html" hreflang="es" rel="alternate" title="Español"> es </a> |
28 <a href="./fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
29 <a href="./ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
30 <a href="./pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Português (Brasil)"> pt-br </a> |
31 <a href="./tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
34 <p>This document describes some of the major changes between the
35 2.0 and 2.2 versions of the Apache HTTP Server. For new features since
36 version 1.3, see the <a href="new_features_2_0.html">2.0 new features</a>
39 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#core">Core Enhancements</a></li>
40 <li><img alt="" src="./images/down.gif" /> <a href="#module">Module Enhancements</a></li>
41 <li><img alt="" src="./images/down.gif" /> <a href="#programs">Program Enhancements</a></li>
42 <li><img alt="" src="./images/down.gif" /> <a href="#developer">Module Developer Changes</a></li>
43 </ul><h3>See also</h3><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
44 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
46 <h2><a name="core" id="core">Core Enhancements</a> <a title="Permanent link" href="#core" class="permalink">¶</a></h2>
51 <dd>The bundled authentication and authorization modules have
52 been refactored. The new mod_authn_alias(already removed from 2.3/2.4)
53 module can greatly simplify certain authentication configurations.
54 See <a href="#module">module name changes</a>, and
55 <a href="#developer">the developer changes</a> for more
56 information about how these changes affects users and module
60 <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>, <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code>, and
61 mod_mem_cache(already removed from 2.3/2.4) have undergone a lot of changes, and
62 are now considered production-quality. <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>
63 has been introduced to clean up <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code>
66 <dt>Configuration</dt>
67 <dd>The default configuration layout has been simplified and
68 modularised. Configuration snippets which can be used to
69 enable commonly-used features are now bundled with Apache, and
70 can be easily added to the main server config.</dd>
72 <dt>Graceful stop</dt>
73 <dd>The <code class="module"><a href="./mod/prefork.html">prefork</a></code>, <code class="module"><a href="./mod/worker.html">worker</a></code> and
74 <code class="module"><a href="./mod/event.html">event</a></code> MPMs now allow <code class="program"><a href="./programs/httpd.html">httpd</a></code>
75 to be shutdown gracefully via the
76 <a href="stopping.html#gracefulstop"><code>graceful-stop</code></a>
77 signal. The <code class="directive"><a href="./mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> directive
78 has been added to specify an optional timeout, after which
79 <code class="program"><a href="./programs/httpd.html">httpd</a></code> will terminate regardless of the status
80 of any requests being served.</dd>
83 <dd>The new <code class="module"><a href="./mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> module provides
84 load balancing services for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>.
85 The new <code class="module"><a href="./mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code> module adds support for the
86 <code>Apache JServ Protocol version 1.3</code> used by
87 <a href="http://tomcat.apache.org/">Apache Tomcat</a>.</dd>
89 <dt>Regular Expression Library Updated</dt>
90 <dd>Version 5.0 of the
91 <a href="http://www.pcre.org/">Perl Compatible Regular Expression
92 Library</a> (PCRE) is now included. <code class="program"><a href="./programs/httpd.html">httpd</a></code> can be
93 configured to use a system installation of PCRE by passing the
94 <code>--with-pcre</code> flag to configure.</dd>
96 <dt>Smart Filtering</dt>
97 <dd><code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code> introduces dynamic configuration
98 to the output filter chain. It enables filters to be conditionally
99 inserted, based on any Request or Response header or environment
100 variable, and dispenses with the more problematic dependencies and
101 ordering problems in the 2.0 architecture.</dd>
103 <dt>Large File Support</dt>
104 <dd><code class="program"><a href="./programs/httpd.html">httpd</a></code> is now built with support for files larger
105 than 2GB on modern 32-bit Unix systems. Support for handling
106 >2GB request bodies has also been added.</dd>
109 <dd>The <code class="module"><a href="./mod/event.html">event</a></code> MPM uses a separate thread to handle
110 Keep Alive requests and accepting connections. Keep Alive requests
111 have traditionally required httpd to dedicate a worker to handle it.
112 This dedicated worker could not be used again until the Keep Alive
113 timeout was reached.</dd>
115 <dt>SQL Database Support</dt>
116 <dd><code class="module"><a href="./mod/mod_dbd.html">mod_dbd</a></code>, together with the <code>apr_dbd</code>
117 framework, brings direct SQL support to modules that need it.
118 Supports connection pooling in threaded MPMs.</dd>
121 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
122 <div class="section">
123 <h2><a name="module" id="module">Module Enhancements</a> <a title="Permanent link" href="#module" class="permalink">¶</a></h2>
127 <dd>Modules in the aaa directory have been renamed and offer
128 better support for digest authentication. For example,
129 <code>mod_auth</code> is now split into
130 <code class="module"><a href="./mod/mod_auth_basic.html">mod_auth_basic</a></code> and
131 <code class="module"><a href="./mod/mod_authn_file.html">mod_authn_file</a></code>; <code>mod_auth_dbm</code> is now
132 called <code class="module"><a href="./mod/mod_authn_dbm.html">mod_authn_dbm</a></code>; <code>mod_access</code> has
133 been renamed <code class="module"><a href="./mod/mod_authz_host.html">mod_authz_host</a></code>. There is also a new
134 mod_authn_alias(already removed from 2.3/2.4) module for simplifying
135 certain authentication configurations.
138 <dt><code class="module">mod_authnz_ldap</code></dt>
139 <dd>This module is a port of the 2.0
140 <code>mod_auth_ldap</code> module to the 2.2 <code>Authn/Authz</code>
141 framework. New features include using LDAP attribute values and
142 complicated search filters in the
143 <code class="directive"><a href="./mod/mod_authz_core.html#require">Require</a></code> directive.</dd>
145 <dt><code class="module"><a href="./mod/mod_authz_owner.html">mod_authz_owner</a></code></dt>
146 <dd>A new module that authorizes access to files based
147 on the owner of the file on the file system</dd>
149 <dt><code class="module"><a href="./mod/mod_version.html">mod_version</a></code></dt>
150 <dd>A new module that allows configuration blocks to be enabled based on the
151 version number of the running server.</dd>
153 <dt><code class="module"><a href="./mod/mod_info.html">mod_info</a></code></dt>
154 <dd>Added a new <code>?config</code> argument which will show
155 the configuration directives as parsed by Apache, including
156 their file name and line number. The module also
157 shows the order of all request hooks and additional
158 build information, similar to <code>httpd -V</code>.</dd>
160 <dt><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code></dt>
162 <dd>Added a support for
163 <a href="http://www.ietf.org/rfc/rfc2817.txt">RFC 2817</a>, which
164 allows connections to upgrade from clear text to TLS encryption.</dd>
166 <dt><code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code></dt>
167 <dd><code>mod_imap</code> has been renamed to
168 <code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code> to avoid user confusion.</dd>
171 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
172 <div class="section">
173 <h2><a name="programs" id="programs">Program Enhancements</a> <a title="Permanent link" href="#programs" class="permalink">¶</a></h2>
176 <dt><code class="program"><a href="./programs/httpd.html">httpd</a></code></dt>
177 <dd>A new command line option <code>-M</code> has been added that
178 lists all modules that are loaded based on the current
179 configuration. Unlike the <code>-l</code> option, this list
180 includes DSOs loaded via <code class="module"><a href="./mod/mod_so.html">mod_so</a></code>.</dd>
182 <dt><code class="program"><a href="./programs/httxt2dbm.html">httxt2dbm</a></code></dt>
183 <dd>A new program used to generate dbm files from text input,
184 for use in <code class="directive"><a href="./mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>
185 with the <code>dbm</code> map type.</dd>
187 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
188 <div class="section">
189 <h2><a name="developer" id="developer">Module Developer Changes</a> <a title="Permanent link" href="#developer" class="permalink">¶</a></h2>
192 <dt><a class="glossarylink" href="./glossary.html#apr" title="see glossary">APR</a> 1.0 API</dt>
194 <dd>Apache 2.2 uses the APR 1.0 API. All deprecated functions and
195 symbols have been removed from <code>APR</code> and
196 <code>APR-Util</code>. For details, see the
197 <a href="http://apr.apache.org/">APR Website</a>.</dd>
200 <dd>The bundled authentication and authorization modules have
201 been renamed along the following lines:
203 <li><code>mod_auth_*</code> -> Modules that implement an HTTP
204 authentication mechanism</li>
205 <li><code>mod_authn_*</code> -> Modules that provide a backend
206 authentication provider</li>
207 <li><code>mod_authz_*</code> -> Modules that implement
208 authorization (or access)</li>
209 <li><code>mod_authnz_*</code> -> Module that implements both
210 authentication & authorization</li>
212 There is a new authentication backend provider
213 scheme which greatly eases the construction of new authentication
216 <dt>Connection Error Logging</dt>
218 <dd>A new function, <code>ap_log_cerror</code> has been added to log
219 errors that occur with the client's connection. When logged,
220 the message includes the client IP address.</dd>
222 <dt>Test Configuration Hook Added</dt>
224 <dd>A new hook, <code>test_config</code> has been added to aid
225 modules that want to execute special code only when the user passes
226 <code>-t</code> to <code class="program"><a href="./programs/httpd.html">httpd</a></code>.</dd>
228 <dt>Set Threaded MPM's Stacksize</dt>
230 <dd>A new directive, <code class="directive"><a href="./mod/mpm_common.html#threadstacksize">ThreadStackSize</a></code> has been added to
231 set the stack size on all threaded MPMs. This is required
232 for some third-party modules on platforms with small default
233 thread stack size.</dd>
235 <dt>Protocol handling for output filters</dt>
237 <dd>In the past, every filter has been responsible for ensuring
238 that it generates the correct response headers where it affects
239 them. Filters can now delegate common protocol management to
240 <code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code>, using the
241 <code>ap_register_output_filter_protocol</code> or
242 <code>ap_filter_protocol</code> calls.</dd>
244 <dt>Monitor hook added</dt>
245 <dd>Monitor hook enables modules to run regular/scheduled jobs
246 in the parent (root) process.</dd>
248 <dt>Regular expression API changes</dt>
250 <dd>The <code>pcreposix.h</code> header is no longer available;
251 it is replaced by the new <code>ap_regex.h</code> header. The
252 POSIX.2 <code>regex.h</code> implementation exposed by the old
253 header is now available under the <code>ap_</code> namespace
254 from <code>ap_regex.h</code>. Calls to <code>regcomp</code>,
255 <code>regexec</code> and so on can be replaced by calls to
256 <code>ap_regcomp</code>, <code>ap_regexec</code>.</dd>
258 <dt>DBD Framework (SQL Database API)</dt>
260 <dd><p>With Apache 1.x and 2.0, modules requiring an SQL backend
261 had to take responsibility for managing it themselves. Apart
262 from reinventing the wheel, this can be very inefficient, for
263 example when several modules each maintain their own connections.</p>
265 <p>Apache 2.1 and later provides the <code>ap_dbd</code> API for
266 managing database connections (including optimised strategies
267 for threaded and unthreaded MPMs), while APR 1.2 and later provides
268 the <code>apr_dbd</code> API for interacting with the database.</p>
270 <p>New modules SHOULD now use these APIs for all SQL database
271 operations. Existing applications SHOULD be upgraded to use it
272 where feasible, either transparently or as a recommended option
273 to their users.</p></dd>
276 <div class="bottomlang">
277 <p><span>Available Languages: </span><a href="./en/new_features_2_2.html" title="English"> en </a> |
278 <a href="./es/new_features_2_2.html" hreflang="es" rel="alternate" title="Español"> es </a> |
279 <a href="./fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
280 <a href="./ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
281 <a href="./pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Português (Brasil)"> pt-br </a> |
282 <a href="./tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
283 </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>
284 <script type="text/javascript"><!--//--><![CDATA[//><!--
285 var comments_shortname = 'httpd';
286 var comments_identifier = 'http://httpd.apache.org/docs/trunk/new_features_2_2.html';
288 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
289 d.write('<div id="comments_thread"><\/div>');
290 var s = d.createElement('script');
291 s.type = 'text/javascript';
293 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
294 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
297 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
299 })(window, document);
300 //--><!]]></script></div><div id="footer">
301 <p class="apache">Copyright 2019 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>
302 <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[//><!--
303 if (typeof(prettyPrint) !== 'undefined') {