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 2.2 - 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" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" /> 12<script src="/style/scripts/prettify.js" type="text/javascript"> 13</script> 14 15<link href="/images/favicon.ico" rel="shortcut icon" /></head> 16<body id="manual-page"><div id="page-header"> 17<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.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> 18<p class="apache">Apache HTTP Server Version 2.2</p> 19<img alt="" src="/images/feather.gif" /></div> 20<div class="up"><a href="./"><img title="<-" alt="<-" src="/images/left.gif" /></a></div> 21<div id="path"> 22<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.2</a></div><div id="page-content"><div id="preamble"><h1>Overview of new features in Apache 2.2</h1> 23<div class="toplang"> 24<p><span>Available Languages: </span><a href="/en/new_features_2_2.html" title="English"> en </a> | 25<a href="/fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a> | 26<a href="/ja/new_features_2_2.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 27<a href="/ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 28<a href="/pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Portugu�s (Brasil)"> pt-br </a> | 29<a href="/tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </a></p> 30</div> 31 32 <p>This document describes some of the major changes between the 33 2.0 and 2.2 versions of the Apache HTTP Server. For new features since 34 version 1.3, see the <a href="new_features_2_0.html">2.0 new features</a> 35 document.</p> 36</div> 37<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#core">Core Enhancements</a></li> 38<li><img alt="" src="/images/down.gif" /> <a href="#module">Module Enhancements</a></li> 39<li><img alt="" src="/images/down.gif" /> <a href="#programs">Program Enhancements</a></li> 40<li><img alt="" src="/images/down.gif" /> <a href="#developer">Module Developer Changes</a></li> 41</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> 42<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 43<div class="section"> 44<h2><a name="core" id="core">Core Enhancements</a></h2> 45 46 <dl> 47 48 <dt>Authn/Authz</dt> 49 <dd>The bundled authentication and authorization modules have 50 been refactored. The new <code class="module"><a href="/mod/mod_authn_alias.html">mod_authn_alias</a></code> module 51 can greatly simplify certain authentication configurations. 52 See <a href="#module">module name changes</a>, and 53 <a href="#developer">the developer changes</a> for more 54 information about how these changes affects users and module 55 writers.</dd> 56 57 <dt>Caching</dt> 58 <dd><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code>, <code class="module"><a href="/mod/mod_disk_cache.html">mod_disk_cache</a></code>, and 59 <code class="module"><a href="/mod/mod_mem_cache.html">mod_mem_cache</a></code> have undergone a lot of changes, and 60 are now considered production-quality. <code class="program"><a href="/programs/htcacheclean.html">htcacheclean</a></code> 61 has been introduced to clean up <code class="module"><a href="/mod/mod_disk_cache.html">mod_disk_cache</a></code> 62 setups.</dd> 63 64 <dt>Configuration</dt> 65 <dd>The default configuration layout has been simplified and 66 modularised. Configuration snippets which can be used to 67 enable commonly-used features are now bundled with Apache, and 68 can be easily added to the main server config.</dd> 69 70 <dt>Graceful stop</dt> 71 <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 72 <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> 73 to be shutdown gracefully via the 74 <a href="stopping.html#gracefulstop"><code>graceful-stop</code></a> 75 signal. The <code class="directive"><a href="/mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> directive 76 has been added to specify an optional timeout, after which 77 <code class="program"><a href="/programs/httpd.html">httpd</a></code> will terminate regardless of the status 78 of any requests being served.</dd> 79 80 <dt>Proxying</dt> 81 <dd>The new <code class="module"><a href="/mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> module provides 82 load balancing services for <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code>. 83 The new <code class="module"><a href="/mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code> module adds support for the 84 <code>Apache JServ Protocol version 1.3</code> used by 85 <a href="http://tomcat.apache.org/">Apache Tomcat</a>.</dd> 86 87 <dt>Regular Expression Library Updated</dt> 88 <dd>Version 5.0 of the 89 <a href="http://www.pcre.org/">Perl Compatible Regular Expression 90 Library</a> (PCRE) is now included. <code class="program"><a href="/programs/httpd.html">httpd</a></code> can be 91 configured to use a system installation of PCRE by passing the 92 <code>--with-pcre</code> flag to configure.</dd> 93 94 <dt>Smart Filtering</dt> 95 <dd><code class="module"><a href="/mod/mod_filter.html">mod_filter</a></code> introduces dynamic configuration 96 to the output filter chain. It enables filters to be conditionally 97 inserted, based on any Request or Response header or environment 98 variable, and dispenses with the more problematic dependencies and 99 ordering problems in the 2.0 architecture.</dd> 100 101 <dt>Large File Support</dt> 102 103 <dd><code class="program"><a href="/programs/httpd.html">httpd</a></code> is now built with support for files larger 104 than 2GB on modern 32-bit Unix systems. Support for handling 105 >2GB request bodies has also been added.</dd> 106 107 <dt>Event MPM</dt> 108 <dd>The <code class="module"><a href="/mod/event.html">event</a></code> MPM uses a separate thread to handle 109 Keep Alive requests and accepting connections. Keep Alive requests 110 have traditionally required httpd to dedicate a worker to handle it. 111 This dedicated worker could not be used again until the Keep Alive 112 timeout was reached.</dd> 113 114 <dt>SQL Database Support</dt> 115 <dd><p><code class="module"><a href="/mod/mod_dbd.html">mod_dbd</a></code>, together with the <code>apr_dbd</code> 116 framework, brings direct SQL support to modules that need it. 117 Supports connection pooling in threaded MPMs.</p> 118 </dd> 119 120 </dl> 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></h2> 124 125 <dl> 126 <dt>Authn/Authz</dt> 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 <code class="module"><a href="/mod/mod_authn_alias.html">mod_authn_alias</a></code> module for simplifying 135 certain authentication configurations. 136 </dd> 137 138 <dt><code class="module"><a href="/mod/mod_authnz_ldap.html">mod_authnz_ldap</a></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/core.html#require">Require</a></code> directive.</dd> 144 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> 148 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> 152 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> 159 160 <dt><code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code></dt> 161 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> 165 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> 169 </dl> 170 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></h2> 174 175 <dl> 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> 181 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> 186 </dl> 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></h2> 190 191 <dl> 192 <dt><a class="glossarylink" href="/glossary.html#apr" title="see glossary">APR</a> 1.0 API</dt> 193 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> 198 199 <dt>Authn/Authz</dt> 200 <dd>The bundled authentication and authorization modules have 201 been renamed along the following lines: 202 <ul> 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> 211 </ul> 212 There is a new authentication backend provider 213 scheme which greatly eases the construction of new authentication 214 backends.</dd> 215 216 <dt>Connection Error Logging</dt> 217 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> 221 222 <dt>Test Configuration Hook Added</dt> 223 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> 227 228 <dt>Set Threaded MPM's Stacksize</dt> 229 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> 234 235 <dt>Protocol handling for output filters</dt> 236 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> 243 244 <dt>Monitor hook added</dt> 245 <dd>Monitor hook enables modules to run regular/scheduled jobs 246 in the parent (root) process.</dd> 247 248 <dt>Regular expression API changes</dt> 249 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> 257 258 <dt>DBD Framework (SQL Database API)</dt> 259 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> 264 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> 269 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> 274 </dl> 275 </div></div> 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="/fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a> | 279<a href="/ja/new_features_2_2.html" hreflang="ja" rel="alternate" title="Japanese"> ja </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[//><!-- 285var comments_shortname = 'httpd'; 286var comments_identifier = 'http://httpd.apache.org/docs/2.2/new_features_2_2.html'; 287(function(w, d) { 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'; 292 s.async = true; 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); 295 } 296 else { 297 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 298 } 299})(window, document); 300//--><!]]></script></div><div id="footer"> 301<p class="apache">Copyright 2013 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/directives.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[//><!-- 303if (typeof(prettyPrint) !== 'undefined') { 304 prettyPrint(); 305} 306//--><!]]></script> 307</body></html>