blob: 830e271c9efa5001c491cf7ce85161974e723495 [file] [log] [blame]
Hongqing Liufd5ee812014-05-10 16:32:51 +08001<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The AJP Connector</title><meta name="author" content="Remy Maucherat"><meta name="author" content="Yoav Shapira"><meta name="author" content="Andrew R. Jaquith"><style type="text/css" media="print">
2 .noPrint {display: none;}
3 td#mainBody {width: 100%;}
4 </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
5 The Apache Tomcat Servlet/JSP Container
6 " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The AJP Connector</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
7<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementations">Standard Implementations</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li></ul>
8</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
9
10 <p>The <strong>AJP Connector</strong> element represents a
11 <strong>Connector</strong> component that communicates with a web
12 connector via the <code>AJP</code> protocol. This is used for cases
13 where you wish to invisibly integrate Tomcat 6 into an existing (or new)
14 Apache installation, and you want Apache to handle the static content
15 contained in the web application, and/or utilize Apache's SSL
16 processing.</p>
17
18 <p>This connector supports load balancing when used in conjunction with
19 the <code>jvmRoute</code> attribute of the
20 <a href="engine.html">Engine</a>.</p>
21
22<p>The native connectors supported with this Tomcat release are:
23<ul>
24 <li>JK 1.2.x with any of the supported servers</li>
25 <li>mod_proxy on Apache httpd 2.x (included by default in Apache HTTP Server 2.2),
26 with AJP enabled: see
27 <a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html">the httpd docs</a>
28 for details.</li>
29</ul>
30</p>
31
32<p><b>Other native connectors supporting AJP may work, but are no longer supported.</b></p>
33
34</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
35
36 <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
37
38 <p>All implementations of <strong>Connector</strong>
39 support the following attributes:</p>
40
41 <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allowTrace</code></td><td align="left" valign="center">
42 <p>A boolean value which can be used to enable or disable the TRACE
43 HTTP method. If not specified, this attribute is set to false.</p>
44 </td></tr><tr><td align="left" valign="center"><code>emptySessionPath</code></td><td align="left" valign="center">
45 <p>If set to <code>true</code>, all paths for session cookies will be set
46 to <code>/</code>. This can be useful for portlet specification implementations.
47 If not specified, this attribute is set to <code>false</code>.</p>
48 </td></tr><tr><td align="left" valign="center"><code>enableLookups</code></td><td align="left" valign="center">
49 <p>Set to <code>true</code> if you want calls to
50 <code>request.getRemoteHost()</code> to perform DNS lookups in
51 order to return the actual host name of the remote client. Set
52 to <code>false</code> to skip the DNS lookup and return the IP
53 address in String form instead (thereby improving performance).
54 By default, DNS lookups are disabled.</p>
55 </td></tr><tr><td align="left" valign="center"><code>maxHeaderCount</code></td><td align="left" valign="center">
56 <p>The maximum number of headers in a request that are allowed by the
57 container. A request that contains more headers than the specified limit
58 will be rejected. A value of less than 0 means no limit.
59 If not specified, a default of 100 is used.</p>
60 </td></tr><tr><td align="left" valign="center"><code>maxParameterCount</code></td><td align="left" valign="center">
61 <p>The maximum number of parameters (GET plus POST) which will be
62 automatically parsed by the container. A value of less than 0 means no
63 limit. If not specified, a default of 10000 is used. Note that
64 <code>FailedRequestFilter</code> <a href="filter.html">filter</a> can be
65 used to reject requests that hit the limit.</p>
66 </td></tr><tr><td align="left" valign="center"><code>maxPostSize</code></td><td align="left" valign="center">
67 <p>The maximum size in bytes of the POST which will be handled by
68 the container FORM URL parameter parsing. The feature can be disabled by
69 setting this attribute to a value less than or equal to 0.
70 If not specified, this attribute is set to 2097152 (2 megabytes).</p>
71 </td></tr><tr><td align="left" valign="center"><code>maxSavePostSize</code></td><td align="left" valign="center">
72 <p>The maximum size in bytes of the POST which will be saved/buffered by
73 the container during FORM or CLIENT-CERT authentication. For both types
74 of authentication, the POST will be saved/buffered before the user is
75 authenticated. For CLIENT-CERT authentication, the POST is buffered for
76 the duration of the SSL handshake and the buffer emptied when the request
77 is processed. For FORM authentication the POST is saved whilst the user
78 is re-directed to the login form and is retained until the user
79 successfully authenticates or the session associated with the
80 authentication request expires. The limit can be disabled by setting this
81 attribute to -1. Setting the attribute to zero will disable the saving of
82 POST data during authentication. If not specified, this attribute is set
83 to 4096 (4 kilobytes).</p>
84 </td></tr><tr><td align="left" valign="center"><code>parseBodyMethods</code></td><td align="left" valign="center">
85 <p>A comma-separated list of HTTP methods for which request
86 bodies will be parsed for request parameters identically
87 to POST. This is useful in RESTful applications that want to
88 support POST-style semantics for PUT requests.
89 Note that any setting other than <code>POST</code> causes Tomcat
90 to behave in a way that does against the intent of the servlet
91 specification.
92 The HTTP method TRACE is specifically forbidden here in accordance
93 with the HTTP specification.
94 The default is <code>POST</code></p>
95 </td></tr><tr><td align="left" valign="center"><strong><code>port</code></strong></td><td align="left" valign="center">
96 <p>The TCP port number on which this <strong>Connector</strong>
97 will create a server socket and await incoming connections. Your
98 operating system will allow only one server application to listen
99 to a particular port number on a particular IP address.</p>
100 </td></tr><tr><td align="left" valign="center"><code>protocol</code></td><td align="left" valign="center">
101 <p>Sets the protocol to handle incoming traffic. The default value is
102 <code>AJP/1.3</code> and configures
103 <code>org.apache.jk.server.JkCoyoteHandler</code> the original blocking
104 Java connector by default.<br>
105 If the <code>PATH</code> (Windows) or <code>LD_LIBRARY_PATH</code>
106 (on most unix systems) environment variables contain the Tomcat
107 native library, the native/APR connector will automatically be
108 configured instead.<br>
109 To use an explicit protocol rather than rely on the auto-switching
110 mechanism described above, the following values may be used:<br>
111 <code>org.apache.jk.server.JkCoyoteHandler</code>
112 - original blocking Java connector<br>
113 <code>org.apache.coyote.ajp.AjpProtocol</code>
114 - new blocking Java connector that supports an executor<br>
115 <code>org.apache.coyote.ajp.AjpAprProtocol</code>
116 - the APR/native connector.<br>
117 Custom implementations may also be used.</p>
118 </td></tr><tr><td align="left" valign="center"><code>proxyName</code></td><td align="left" valign="center">
119 <p>If this <strong>Connector</strong> is being used in a proxy
120 configuration, configure this attribute to specify the server name
121 to be returned for calls to <code>request.getServerName()</code>.
122 See <a href="#Proxy Support">Proxy Support</a> for more
123 information.</p>
124 </td></tr><tr><td align="left" valign="center"><code>proxyPort</code></td><td align="left" valign="center">
125 <p>If this <strong>Connector</strong> is being used in a proxy
126 configuration, configure this attribute to specify the server port
127 to be returned for calls to <code>request.getServerPort()</code>.
128 See <a href="#Proxy Support">Proxy Support</a> for more
129 information.</p>
130 </td></tr><tr><td align="left" valign="center"><code>redirectPort</code></td><td align="left" valign="center">
131 <p>If this <strong>Connector</strong> is supporting non-SSL
132 requests, and a request is received for which a matching
133 <code>&lt;security-constraint&gt;</code> requires SSL transport,
134 Catalina will automatically redirect the request to the port
135 number specified here.</p>
136 </td></tr><tr><td align="left" valign="center"><code>request.registerRequests</code></td><td align="left" valign="center">
137 <p>This attribute controls request registration for JMX monitoring
138 of the Connector. It is enabled by default, but may be turned
139 it off to save a bit of memory.</p>
140 </td></tr><tr><td align="left" valign="center"><code>scheme</code></td><td align="left" valign="center">
141 <p>Set this attribute to the name of the protocol you wish to have
142 returned by calls to <code>request.getScheme()</code>. For
143 example, you would set this attribute to "<code>https</code>"
144 for an SSL Connector. The default value is "<code>http</code>".
145 See <a href="#SSL Support">SSL Support</a> for more information.</p>
146 </td></tr><tr><td align="left" valign="center"><code>secure</code></td><td align="left" valign="center">
147 <p>Set this attribute to <code>true</code> if you wish to have
148 calls to <code>request.isSecure()</code> to return <code>true</code>
149 for requests received by this Connector (you would want this on an
150 SSL Connector). The default value is <code>false</code>.</p>
151 </td></tr><tr><td align="left" valign="center"><code>URIEncoding</code></td><td align="left" valign="center">
152 <p>This specifies the character encoding used to decode the URI bytes,
153 after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
154 </p>
155 </td></tr><tr><td align="left" valign="center"><code>useBodyEncodingForURI</code></td><td align="left" valign="center">
156 <p>This specifies if the encoding specified in contentType should be used
157 for URI query parameters, instead of using the URIEncoding. This
158 setting is present for compatibility with Tomcat 4.1.x, where the
159 encoding specified in the contentType, or explicitly set using
160 Request.setCharacterEncoding method was also used for the parameters from
161 the URL. The default value is <code>false</code>.
162 </p>
163 </td></tr><tr><td align="left" valign="center"><code>useIPVHosts</code></td><td align="left" valign="center">
164 <p>Set this attribute to <code>true</code> to cause Tomcat to use
165 the ServerName passed by the native web server to determine the Host
166 to send the request to. The default value is <code>false</code>.</p>
167 </td></tr><tr><td align="left" valign="center"><code>xpoweredBy</code></td><td align="left" valign="center">
168 <p>Set this attribute to <code>true</code> to cause Tomcat to advertise
169 support for the Servlet specification using the header recommended in the
170 specification. The default value is <code>false</code>.</p>
171 </td></tr></table>
172
173 </blockquote></td></tr></table>
174
175 <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementations"><!--()--></a><a name="Standard_Implementations"><strong>Standard Implementations</strong></a></font></td></tr><tr><td><blockquote>
176
177 <p>To use AJP, you
178 must specify the protocol attribute (see above).</p>
179
180 <p><strong>These implementations support the AJP 1.3 protocol.</strong></p>
181
182 <p>They support the following additional attributes (in addition to the
183 common attributes listed above):</p>
184
185 <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>address</code></td><td align="left" valign="center">
186 <p>For servers with more than one IP address, this attribute
187 specifies which address will be used for listening on the specified
188 port. By default, this port will be used on all IP addresses
189 associated with the server. A value of <code>127.0.0.1</code>
190 indicates that the Connector will only listen on the loopback
191 interface.</p>
192 </td></tr><tr><td align="left" valign="center"><code>backlog</code></td><td align="left" valign="center">
193 <p>The maximum queue length for incoming connection requests when
194 all possible request processing threads are in use. Any requests
195 received when the queue is full will be refused. The default
196 value is 100.</p>
197 </td></tr><tr><td align="left" valign="center"><code>bufferSize</code></td><td align="left" valign="center">
198 <p>The size of the output buffer to use. If less than or equal to zero,
199 then output buffering is disabled. The default value is -1
200 (i.e. buffering disabled)</p>
201 </td></tr><tr><td align="left" valign="center"><code>clientCertProvider</code></td><td align="left" valign="center">
202 <p>When client certificate information is presented in a form other than
203 instances of <code>java.security.cert.X509Certificate</code> it needs to
204 be converted before it can be used and this property controls which JSSE
205 provider is used to perform the conversion. For example it is used with
206 the AJP connectors, the <a href="http.html">HTTP APR connector</a> and
207 with the <a href="valve.html#SSL_Authenticator_Valve">
208 org.apache.catalina.valves.SSLValve</a>.If not specified, the default
209 provider will be used.</p>
210 </td></tr><tr><td align="left" valign="center"><code>connectionTimeout</code></td><td align="left" valign="center">
211 <p>The number of milliseconds this <strong>Connector</strong> will wait,
212 after accepting a connection, for the request URI line to be
213 presented. The default value is infinite (i.e. no timeout).</p>
214 </td></tr><tr><td align="left" valign="center"><code>deferAccept</code></td><td align="left" valign="center">
215 <p>Sets the <code>TCP_DEFER_ACCEPT</code> flag on the listening socket for
216 this connector. The default value is <code>true</code> where
217 <code>TCP_DEFER_ACCEPT</code> is supported by the operating system,
218 otherwise it is <code>false</code>.</p>
219 </td></tr><tr><td align="left" valign="center"><code>executor</code></td><td align="left" valign="center">
220 <p>A reference to the name in an <a href="executor.html">Executor</a> element.
221 If this attribute is enabled, and the named executor exists, the connector will
222 use the executor, and all the other thread attributes will be ignored.
223 This attribute is not supported by the original blocking Java
224 connector.</p>
225 </td></tr><tr><td align="left" valign="center"><code>keepAliveTimeout</code></td><td align="left" valign="center">
226 <p>The number of milliseconds this <strong>Connector</strong> will wait for
227 another AJP request before closing the connection.
228 The default value is to use the value that has been set for the
229 connectionTimeout attribute.</p>
230 </td></tr><tr><td align="left" valign="center"><code>maxThreads</code></td><td align="left" valign="center">
231 <p>The maximum number of request processing threads to be created
232 by this <strong>Connector</strong>, which therefore determines the
233 maximum number of simultaneous requests that can be handled. If
234 not specified, this attribute is set to 200. If an executor is associated
235 with this connector, this attribute is ignored as the connector will
236 execute tasks using the executor rather than an internal thread pool.</p>
237 </td></tr><tr><td align="left" valign="center"><code>packetSize</code></td><td align="left" valign="center">
238 <p>This attribute sets the maximum AJP packet size in Bytes. The maximum
239 value is 65536. It should be the same as the <code>max_packet_size</code>
240 directive configured for mod_jk. Normally it is not necessary to change
241 the maximum packet size. Problems with the default value have been
242 reported when sending certificates or certificate chains. The default
243 value is 8192.</p>
244 </td></tr><tr><td align="left" valign="center"><strong><code>port</code></strong></td><td align="left" valign="center">
245 <p>The TCP port number on which this <strong>Connector</strong>
246 will create a server socket and await incoming connections. Your
247 operating system will allow only one server application to listen
248 to a particular port number on a particular IP address.</p>
249 </td></tr><tr><td align="left" valign="center"><code>request.secret</code></td><td align="left" valign="center">
250 <p>Only requests from workers with this secret keyword will be accepted.
251 </p>
252 </td></tr><tr><td align="left" valign="center"><code>request.shutdownEnabled</code></td><td align="left" valign="center">
253 <p>If true and a secret has been configured, a correctly formatted AJP
254 request (that includes the secret) will shutdown the Tomcat instance
255 associated with this connector. This is set to <code>false</code> by
256 default.</p>
257 </td></tr><tr><td align="left" valign="center"><code>request.useSecret</code></td><td align="left" valign="center">
258 <p>If set to <code>true</code>, then a random value for
259 <code>request.secret</code> will be generated. It is for use with
260 <code>request.shutdownEnabled</code>. This is set to <code>false</code>
261 by default.</p>
262 </td></tr><tr><td align="left" valign="center"><code>tcpNoDelay</code></td><td align="left" valign="center">
263 <p>If set to <code>true</code>, the TCP_NO_DELAY option will be
264 set on the server socket, which improves performance under most
265 circumstances. This is set to <code>true</code> by default.</p>
266 </td></tr><tr><td align="left" valign="center"><code>tomcatAuthentication</code></td><td align="left" valign="center">
267 <p>If set to <code>true</code>, the authentication will be done in Tomcat.
268 Otherwise, the authenticated principal will be propagated from the native
269 webserver and used for authorization in Tomcat.
270 The default value is <code>true</code>.</p>
271 </td></tr></table>
272
273 </blockquote></td></tr></table>
274
275</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
276
277 <p>None at this time.</p>
278
279</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
280 Copyright &copy; 1999-2014, Apache Software Foundation
281 </em></font></div></td></tr></table></body></html>