]> granicus.if.org Git - apache/blob - docs/manual/new_features_2_2.xml
Minor language fixes:
[apache] / docs / manual / new_features_2_2.xml
1 <?xml version='1.0' encoding='UTF-8' ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
4 <!-- $LastChangedRevision$ -->
5
6 <!--
7  Copyright 2004-2005 The Apache Software Foundation or its licensors, as
8  applicable.
9
10  Licensed under the Apache License, Version 2.0 (the "License");
11  you may not use this file except in compliance with the License.
12  You may obtain a copy of the License at
13
14      http://www.apache.org/licenses/LICENSE-2.0
15
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
22
23 <manualpage metafile="new_features_2_2.xml.meta">
24
25 <title>Overview of new features in Apache 2.2</title>
26
27 <summary>
28   <p>This document describes some of the major changes between the
29      2.0 and 2.2 versions of the Apache HTTP Server. For new features since
30      version 1.3, see the <a href="new_features_2_0.html">2.0 new features</a>
31      document.</p>
32 </summary>
33
34   <section id="core">
35     <title>Core Enhancements</title>
36     <dl>
37
38       <dt>Authn/Authz</dt>
39       <dd>The bundled authentication and authorization modules have
40           been refactored.  There is a new authentication backend provider
41           scheme which greatly eases the construction of new authentication
42           backends.</dd>
43
44       <dt>Caching</dt>
45       <dd><module>mod_cache</module>, <module>mod_disk_cache</module>, and
46           <module>mod_mem_cache</module> have undergone a lot of changes, and
47           are now considered production-quality. <program>htcacheclean</program>
48           has been introduced to clean up <module>mod_disk_cache</module>
49           setups.</dd>
50
51       <dt>Configuration</dt>
52       <dd>The default configuration layout has been simplified and
53           modularised. Configuration snippets which can be used to 
54           enable commonly-used features are now bundled with Apache, and 
55           can be easily added to the main server config.</dd>
56
57       <dt>Graceful stop</dt>
58       <dd>The <module>prefork</module>, <module>worker</module> and 
59           <module>event</module>  MPMs now allow <program>httpd</program> 
60           to be shutdown gracefully via the
61           <a href="stopping.html#gracefulstop"><code>graceful-stop</code></a> 
62           signal. The <directive 
63           module="mpm_common">GracefulShutdownTimeout</directive> directive
64           has been added to specify an optional timeout, after which
65           <program>httpd</program> will terminate regardless of the status
66           of any requests being served.</dd>
67
68       <dt>Proxying</dt>
69       <dd>The new <module>mod_proxy_balancer</module> module provides 
70           load balancing services for <module>mod_proxy</module>.
71           The new <module>mod_proxy_ajp</module> module adds support for the
72           <code>Apache JServ Protocol version 1.3</code> used by 
73           <a href="http://jakarta.apache.org/tomcat/">Apache Tomcat</a>.</dd>
74
75       <dt>Regular Expression Library Updated</dt>
76       <dd>Version 5.0 of the 
77           <a href="http://www.pcre.org/">Perl Compatible Regular Expression
78           Library</a> (PCRE) is now included.  <program>httpd</program> can be
79           configured to use a system installation of PCRE by passing the
80           <code>--with-pcre</code> flag to configure.</dd>
81
82       <dt>Smart Filtering</dt>
83       <dd><module>mod_filter</module> introduces dynamic configuration
84           to the output filter chain.  It enables filters to be conditionally
85           inserted, based on any Request or Response header or environment
86           variable, and dispenses with the more problematic dependencies and
87           ordering problems in the 2.0 architecture.</dd>
88
89       <dt>Large File Support</dt>
90
91       <dd>httpd is now built with support for files larger than 2GB on
92           modern 32-bit Unix systems.  Support for handling &gt;2GB request
93           bodies has also been added.</dd>
94
95       <dt>Event MPM</dt>
96       <dd>The <module>event</module> MPM uses a seperate thread to handle
97           Keep Alive requests and accepting connections.  Keep Alive requests
98           have traditionally required httpd to dedicate a worker to handle it.
99           This dedicated worker could not be used again until the Keep Alive 
100           timeout was reached.</dd>
101
102       <dt>SQL Database Support</dt>
103       <dd><module>mod_dbd</module>, together with the apr_dbd framework,
104           brings direct SQL support to modules that need it.  Supports
105           connection pooling in threaded MPMs.</dd>
106
107     </dl>
108   </section>
109
110   <section id="module">
111     <title>Module Enhancements</title>
112     <dl>
113       <dt><module>mod_authnz_ldap</module></dt>
114       <dd>This module is a port of the 2.0 
115           <code>mod_auth_ldap</code> module to the 2.2 <code>Authn/Authz</code> 
116           framework.  New features include using LDAP attribute values and 
117           complicated search filters in the 
118           <directive module="core">Require</directive> directive.</dd>
119
120       <dt><module>mod_info</module></dt>
121       <dd>Added a new <code>?config</code> argument which will show
122           the configuration directives as parsed by Apache, including
123           their file name and line number.  The module also 
124           shows the order of all request hooks and additional
125           build information, similar to <code>httpd -V</code>.</dd>
126
127       <dt><module>mod_ssl</module></dt>
128       <!-- Need Info on SSLEngine Support? -->
129       <dd>Added a support for 
130          <a href="http://www.ietf.org/rfc/rfc2817.txt">RFC 2817</a>, which 
131          allows connections to upgrade from clear text to TLS encryption.</dd>
132     </dl>
133   </section>
134
135   <section id="programs">
136     <title>Program Enhancements</title>
137     <dl>
138       <dt><program>httpd</program></dt>
139       <dd>A new command line option <code>-M</code> has been added that
140       lists all modules that are loaded based on the current
141       configuration. Unlike the <code>-l</code> option, this list
142       includes DSOs loaded via <module>mod_so</module>.</dd>
143     </dl>
144   </section>
145
146   <section id="developer">
147     <title>Module Developer Changes</title>
148     <dl>
149       <dt><glossary>APR</glossary> 1.0 API</dt>
150
151       <dd>Apache 2.2 uses the APR 1.0 API.  All deprecated functions and 
152           symbols have been removed from <code>APR</code> and 
153           <code>APR-Util</code>. For details, see the 
154           <a href="http://apr.apache.org/">APR Website</a>.</dd>
155
156       <dt>Connection Error Logging</dt>
157
158       <dd>A new function, <code>ap_log_cerror</code> has been added to log
159           errors that occure with the client's connection.  When logged, 
160           the message includes the client IP address.</dd>
161
162       <dt>Test Configuration Hook Added</dt>
163
164       <dd>A new hook, <code>test_config</code> has been added to aid
165           modules that want to execute special code only when the user passes
166           <code>-t</code> to <program>httpd</program>.</dd>
167
168       <dt>Set Threaded MPM's Stacksize</dt>
169
170       <dd>A new directive, <code>ThreadStackSize</code> has been added to 
171           set the stack size on all threaded MPMs.  This is required
172           for some third-party modules on platforms with small default
173           thread stack size.</dd>
174
175       <dt>Protocol handling for output filters</dt>
176
177       <dd>In the past, every filter has been responsible for ensuring 
178           that it generates the correct response headers where it affects
179           them.  Filters can now delegate common protocol management to
180           <module>mod_filter</module>, using the
181           <code>ap_register_output_filter_protocol</code> or
182           <code>ap_filter_protocol</code> calls.</dd>
183
184       <dt>Monitor hook added</dt>
185       <dd>Monitor hook enables modules to run regular/scheduled jobs
186           in the parent (root) process.</dd>
187           
188       <dt>Regular expression API changes</dt>
189
190       <dd>The <code>pcreposix.h</code> header is no longer available;
191       it is replaced by the new <code>ap_regex.h</code> header.  The
192       POSIX.2 <code>regex.h</code> implementation exposed by the old
193       header is now available under the <code>ap_</code> namespace
194       from <code>ap_regex.h</code>.  Calls to <code>regcomp</code>, 
195       <code>regexec</code> and so on can be replaced by calls to
196       <code>ap_regcomp</code>, <code>ap_regcomp</code>.</dd>
197
198       <dt>DBD Framework (SQL Database API)</dt>
199
200       <dd><p>With Apache 1.x and 2.0, modules requiring an SQL backend
201       had to take responsibility for managing it themselves.  Apart
202       from reinventing the wheel, this can be very inefficient, for
203       example when several modules each maintain their own connections.</p>
204       <p>Apache 2.1 and up provides the <code>ap_dbd</code> API for
205       managing database connections (including optimised strategies
206       for threaded and unthreaded MPMs), while APR 1.2 and up provides
207       the <code>apr_dbd</code> API for interacting with the database.</p>
208       <p>New modules SHOULD now use these APIs for all SQL database
209       operations.  Existing applications SHOULD be upgraded to use it
210       where feasible, either transparently or as a recommended option
211       to their users.</p></dd>
212     </dl>
213   </section>
214 </manualpage>