]> granicus.if.org Git - apache/blob - docs/manual/new_features_2_2.xml
Implement graceful stop in the event MPM. Implementation is identical to
[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
47           are now considered production-quality. <program>htcacheclean</program>
48           has been introduced to cleanup <module>mod_disk_cache</module>
49           setups.</dd>
50
51       <dt>Graceful stop</dt>
52       <dd>The <module>prefork</module>, <module>worker</module> and 
53           <module>event</module>  MPMs now allow <program>httpd</program> 
54           to be shutdown gracefully via the
55           <a href="stopping.html#gracefulstop"><code>graceful-stop</code></a> 
56           signal. The <directive 
57           module="mpm_common">GracefulShutdownTimeout</directive> directive
58           has been added to specify an optional timeout, after which
59           <program>httpd</program> will terminate regardless of the status
60           of any requests being served.</dd>
61
62       <dt>Proxying</dt>
63       <dd>The new <module>mod_proxy_balancer</module> module provides 
64           load balancing services for <module>mod_proxy</module>.
65           The new <module>mod_proxy_ajp</module> module adds support for the
66           <code>Apache JServ Protocol version 1.3</code> used by 
67           <a href="http://jakarta.apache.org/tomcat/">Apache Tomcat</a>.</dd>
68
69       <dt>Regular Expression Library Updated</dt>
70       <dd>Version 5.0 of the 
71           <a href="http://www.pcre.org/">Perl Compatible Regular Expression
72           Library</a> (PCRE) is now included.</dd>
73
74       <dt>Smart Filtering</dt>
75       <dd><module>mod_filter</module> introduces dynamic configuration
76           to the output filter chain.  It enables filters to be conditionally
77           inserted, based on any Request or Response header or environment
78           variable, and dispenses with the more problematic dependencies and
79           ordering problems in the 2.0 architecture.</dd>
80
81       <dt>Large File Support</dt>
82
83       <dd>httpd is now built with support for files larger than 2Gb on
84           modern 32-bit Unix systems.  Support for handling &gt;2Gb request
85           bodies has also been added.</dd>
86
87       <dt>Event MPM</dt>
88       <dd>The <module>event</module> MPM uses a seperate thread to handle
89           Keep Alive requests and accepting connections.  Keep Alive requests
90           have traditionally required httpd to dedicate a worker to handle it.
91           This dedicated worker could not be used again until the Keep Alive 
92           timeout was reached.</dd>
93
94       <dt>SQL Database Support</dt>
95       <dd><module>mod_dbd</module>, together with the apr_dbd framework,
96           brings direct SQL support to modules that need it.  Supports
97           connection pooling in threaded MPMs.</dd>
98
99     </dl>
100   </section>
101
102   <section id="module">
103     <title>Module Enhancements</title>
104     <dl>
105       <dt><module>mod_authnz_ldap</module></dt>
106       <dd>This module is a port of the 2.0 
107           <code>mod_auth_ldap</code> module to the 2.2 <code>Authn/Authz</code> 
108           framework.  New features include using LDAP attribute values and 
109           complicated search filters in the 
110           <directive module="core">Require</directive> directive.</dd>
111
112       <dt><module>mod_info</module></dt>
113       <dd>Added a new <code>?config</code> argument which will show
114           the configuration directives as parsed by Apache, including
115           their file name and line number.  The module also 
116           shows the order of all request hooks and additional
117           build information, similar to <code>httpd -V</code>.</dd>
118
119       <dt><module>mod_ssl</module></dt>
120       <!-- Need Info on SSLEngine Support? -->
121       <dd>Added a support for 
122          <a href="http://www.ietf.org/rfc/rfc2817.txt">RFC 2817</a>, which 
123          allows connections to upgrade from clear text to TLS encryption.</dd>
124     </dl>
125   </section>
126
127   <section id="programs">
128     <title>Program Enhancements</title>
129     <dl>
130       <dt><program>httpd</program></dt>
131       <dd>A new command line option <code>-M</code> has been added that
132       lists all modules that are loaded based on the current
133       configuration. Unlike the <code>-l</code> option, this list
134       includes DSOs loaded via <module>mod_so</module>.</dd>
135     </dl>
136   </section>
137
138   <section id="developer">
139     <title>Module Developer Changes</title>
140     <dl>
141       <dt>APR 1.0 API</dt>
142
143       <dd>Apache 2.2 uses the APR 1.0 API.  All deprecated functions and 
144           symbols have been removed from <code>APR</code> and 
145           <code>APR-Util</code>. For details, see the 
146           <a href="http://apr.apache.org/">APR Website</a>.</dd>
147
148       <dt>Connection Error Logging</dt>
149
150       <dd>A new function, <code>ap_log_cerror</code> has been added to log
151           errors that occure with the client's connection.  When logged, 
152           the message includes the client IP address.</dd>
153
154       <dt>Test Configuration Hook Added</dt>
155
156       <dd>A new hook, <code>test_config</code> has been added to aid
157           modules that want to execute special code only when the user passes
158           <code>-t</code> to <program>httpd</program>.</dd>
159
160       <dt>Set Threaded MPM's Stacksize</dt>
161
162       <dd>A new directive, <code>ThreadStackSize</code> has been added to 
163           set the stack size on all threaded MPMs.  This is required
164           for some third-party modules on platforms with small default
165           thread stack size.</dd>
166
167       <dt>Protocol handling for output filters</dt>
168
169       <dd>In the past, every filter has been responsible for ensuring 
170           that it generates the correct response headers where it affects
171           them.  Filters can now delegate common protocol management to
172           <module>mod_filter</module>, using the
173           <code>ap_register_output_filter_protocol</code> or
174           <code>ap_filter_protocol</code> calls.</dd>
175
176       <dt>Monitor hook added</dt>
177       <dd>Monitor hook enables modules to run regular/scheduled jobs
178           in the parent (root) process.</dd>
179     </dl>
180   </section>
181 </manualpage>