craigmcc 01/08/20 19:28:21 Modified: webapps/tomcat-docs index.xml project.xml tomcat-docs.xsl Added: webapps/tomcat-docs proxy-howto.xml webapps/tomcat-docs/config http11.xml server.xml service.xml warp.xml Log: Migrate the first four pages of the Server Configuration information (Server, Service, HTTP/1.1 Connector, and WARP Connector) to the new documentation style. Added a new <attributes> template to the stylesheet to support rendering of attribute/description tables. Separated out the information on configuring Tomcat behind a proxy server into a new "Proxy Support HOW-TO" document. Revision Changes Path 1.9 +3 -0 jakarta-tomcat-4.0/webapps/tomcat-docs/index.xml Index: index.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/tomcat-docs/index.xml,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- index.xml 2001/08/20 22:43:52 1.8 +++ index.xml 2001/08/21 02:28:21 1.9 @@ -65,6 +65,9 @@ <li><a href="manager-howto.html"><strong>Manager App HOW-TO</strong></a> - Operating the <code>Manager</code> web app to deploy, undeploy, and redeploy applications while Tomcat is running.</li> +<li><a href="proxy-howto.html"><strong>Proxy Support HOW-TO</strong></a> - + Configuring Tomcat 4 to run behind a proxy server (or a web server + functioning as a proxy server).</li> <li><a href="ssl-howto.html"><strong>SSL Configuration HOW-TO</strong></a> - Installing and configuring SSL support so that your Tomcat will serve requests using 1.9 +1 -0 jakarta-tomcat-4.0/webapps/tomcat-docs/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/tomcat-docs/project.xml,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- project.xml 2001/08/20 22:43:52 1.8 +++ project.xml 2001/08/21 02:28:21 1.9 @@ -25,6 +25,7 @@ <menu name="Administrators"> <item name="Config. Reference" href="config/index.html"/> <item name="Manager App HOW-TO" href="manager-howto.html"/> + <item name="Proxy Support HOW-TO" href="proxy-howto.html"/> <item name="SSL Config HOW-TO" href="ssl-howto.html"/> </menu> 1.3 +45 -14 jakarta-tomcat-4.0/webapps/tomcat-docs/tomcat-docs.xsl Index: tomcat-docs.xsl =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/tomcat-docs/tomcat-docs.xsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- tomcat-docs.xsl 2001/08/05 04:02:30 1.2 +++ tomcat-docs.xsl 2001/08/21 02:28:21 1.3 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="ISO-8859-1"?> <!-- Content Stylesheet for "tomcat-docs" Documentation --> -<!-- $Id: tomcat-docs.xsl,v 1.2 2001/08/05 04:02:30 craigmcc Exp $ --> +<!-- $Id: tomcat-docs.xsl,v 1.3 2001/08/21 02:28:21 craigmcc Exp $ --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> @@ -14,22 +14,23 @@ <!-- Defined parameters (overrideable) --> - <xsl:param name="home-name" select="'The Jakarta Project'"/> - <xsl:param name="home-href" select="'http://jakarta.apache.org/'"/> - <xsl:param name="home-logo" select="'/images/jakarta-logo.gif'"/> - <xsl:param name="relative-path" select="'.'"/> - <xsl:param name="void-image" select="'/images/void.gif'"/> + <xsl:param name="home-name" select="'The Jakarta Project'"/> + <xsl:param name="home-href" select="'http://jakarta.apache.org/'"/> + <xsl:param name="home-logo" select="'/images/jakarta-logo.gif'"/> + <xsl:param name="relative-path" select="'.'"/> + <xsl:param name="void-image" select="'/images/void.gif'"/> <!-- Defined variables (non-overrideable) --> - <xsl:variable name="body-bg" select="'#ffffff'"/> - <xsl:variable name="body-fg" select="'#000000'"/> - <xsl:variable name="body-link" select="'#525D76'"/> - <xsl:variable name="banner-bg" select="'#525D76'"/> - <xsl:variable name="banner-fg" select="'#ffffff'"/> - <xsl:variable name="sub-banner-bg" select="'#828DA6'"/> - <xsl:variable name="sub-banner-fg" select="'#ffffff'"/> - <xsl:variable name="source-color" select="'#023264'"/> + <xsl:variable name="body-bg" select="'#ffffff'"/> + <xsl:variable name="body-fg" select="'#000000'"/> + <xsl:variable name="body-link" select="'#525D76'"/> + <xsl:variable name="banner-bg" select="'#525D76'"/> + <xsl:variable name="banner-fg" select="'#ffffff'"/> + <xsl:variable name="sub-banner-bg" select="'#828DA6'"/> + <xsl:variable name="sub-banner-fg" select="'#ffffff'"/> + <xsl:variable name="source-color" select="'#023264'"/> + <xsl:variable name="attributes-color" select="'#023264'"/> <!-- Process an entire document into an HTML page --> @@ -231,6 +232,36 @@ </tr> </table> </div> + </xsl:template> + + + <!-- Process an attributes list with nested attribute elements --> + <xsl:template match="attributes"> + <table border="1" cellpadding="5" width="100%"> + <tr> + <th width="15%" bgcolor="{$attributes-color}"> + <font color="#ffffff">Attribute</font> + </th> + <th width="85%" bgcolor="{$attributes-color}"> + <font color="#ffffff">Description</font> + </th> + <xsl:for-each select="attribute"> + <tr> + <td align="left" valign="center"> + <xsl:if test="@required = 'true'"> + <strong><code><xsl:value-of select="@name"/></code></strong> + </xsl:if> + <xsl:if test="@required != 'true'"> + <code><xsl:value-of select="@name"/></code> + </xsl:if> + </td> + <td align="left" valign="center"> + <xsl:apply-templates/> + </td> + </tr> + </xsl:for-each> + </tr> + </table> </xsl:template> 1.1 jakarta-tomcat-4.0/webapps/tomcat-docs/proxy-howto.xml Index: proxy-howto.xml =================================================================== <?xml version="1.0"?> <!DOCTYPE document [ <!ENTITY project SYSTEM "project.xml"> ]> <document> &project; <properties> <author email="[EMAIL PROTECTED]">Craig R. McClanahan</author> <title>Proxy Support HOW-TO</title> </properties> <body> <section name="Introduction"> <p>Using standard configurations of Tomcat, web applications can ask for the server name and port number to which the request was directed for processing. When Tomcat is running standalone with the <a href="config/http11.html">HTTP/1.1 Connector</a>, it will generally report the server name specified in the request, and the port number on which the <strong>Connector</strong> is listening. The two servlet API calls of interest, for this purpose, are:</p> <ul> <li><code>ServletRequest.getServerName()</code></li> <li><code>ServletRequest.getServerPort()</code></li> </ul> <p>When you are running behind a proxy server (or a web server that is configured to behave like a proxy server), you will sometimes prefer to manage the values returned by these calls. In particular, you will generally want the port number to reflect that specified in the original request, not the one on which the <strong>Connector</strong> itself is listening. You can use the <code>proxyName</code> and <code>proxyPort</code> attributes on the <code><Connector></code> element to configure these values.</p> <p>Proxy support can take many forms. The following sections describe proxy configurations for several common cases.</p> </section> <section name="Apache 1.3 Proxy Support"> <p>Apache 1.3 supports an optional module (<code>mod_proxy</code>) that configures the web server to act as a proxy server. This can be used to forward requests for a particular web application to a Tomcat 4 instance, without having to configure a web connector such as <code>mod_webapp</code>. To accomplish this, you need to perform the following tasks:</p> <ol> <li>Configure your copy of Apache so that it includes the <code>mod_proxy</code> module. If you are building from source, the easiest way to do this is to include the <code>--enable-module=proxy</code> directive on the <code>./configure</code> command line.</li> <li>If not already added for you, make sure that you are loading the <code>mod_proxy</code> module at Apache startup time, by using the following directives in your <code>httpd.conf</code> file: <source> LoadModule proxy_module {path-to-modules}/mod_proxy.so AddModule mod_proxy.c </source></li> <li>Include two directives in your <code>httpd.conf</code> file for each web application that you wish to forward to Tomcat 4. For example, to forward an application at context path <code>/myapp</code>: <source> ProxyPass /myapp http://localhost:8081/myapp ProxyPassReverse /myapp http://localhost:8081/myapp </source> which tells Apache to forward URLs of the form <code>http://localhost/myapp/*</code> to the Tomcat 4 connector listening on port 8081.</li> <li>Configure your copy of Tomcat 4 to include a special <code><Connector></code> element, with appropriate proxy settings, for example: <source> <Connector className="org.apache.catalina.connector.http.HttpConnector" port="8081" ... proxyName="www.mycompany.com" proxyPort="80"/> </source> which will cause servlets inside this web application to think that all proxied requests were directed to <code>www.mycompany.com</code> on port 80.</li> <li>It is legal to omit the <code>proxyName</code> attribute from the <code><Connector></code> element. If you do so, the value returned by <code>request.getServerName()</code> will by the host name on which Tomcat is running. In the example above, it would be <code>localhost</code>.</li> <li>If you also have a <code><Connector></code> listening on port 8080 (nested within the same <a href="config/service.html">Service</a> element), the requests to either port will share the same set of virtual hosts and web applications.</li> <li>You might wish to use the IP filtering features of your operating system to restrict connections to port 8081 (in this example) to be allowed <strong>only</strong> from the server that is running Apache.</li> <li>Alternatively, you can set up a series of web applications that are only available via proxying, as follows: <ul> <li>Configure another <code><Service></code> that contains only a <code><Connector></code> for the proxy port.</li> <li>Configure appropriate <a href="config/engine.html">Engine</a>, <a href="host.html">Host</a>, and <a href="context.html">Context</a> elements for the virtual hosts and web applications accessible via proxying.</li> <li>Optionally, protect port 8081 with IP filters as described earlier.</li> </ul></li> <li>When requests are proxied by Apache, the web server will be recording these requests in its access log. Therefore, you will generally want to disable any access logging performed by Tomcat itself.</li> </ol> <p>When requests are proxied in this manner, <strong>all</strong> requests for the configured web applications will be processed by Tomcat (including requests for static content). You will often be able to improve performance by using the <code>mod_webapp</code> web connector instead, which automatically configures itself to have Apache handle static content that is not processed by filters or security constraints defined within the web application's deployment descriptor (<code>/WEB-INF/web.xml</code>).</p> </section> </body> </document> 1.1 jakarta-tomcat-4.0/webapps/tomcat-docs/config/http11.xml Index: http11.xml =================================================================== <?xml version="1.0"?> <!DOCTYPE document [ <!ENTITY project SYSTEM "project.xml"> ]> <document> &project; <properties> <author email="[EMAIL PROTECTED]">Craig R. McClanahan</author> <title>The HTTP/1.1 Connector</title> </properties> <body> <section name="Introduction"> <p>The <strong>HTTP/1.1 Connector</strong> element represents a <strong>Connector</strong> component that supports the HTTP/1.1 protocol. It enables Catalina to function as a stand-alone web server, in addition to its ability to execute servlets and JSP pages. A particular instance of this component listens for connections on a specific TCP port number on the server. One or more such <strong>Connectors</strong> can be configured as part of a single <a href="service.html">Service</a>, each forwarding to the associated <a href="engine.html">Engine</a> to perform request processing and create the response.</p> <p>If you wish to configure the <strong>Connector</strong> that is used for connections to web servers using the WARP protocol (such as the <code>mod_webapp</code> connector for Apache 1.3), see <a href="warp.html">here</a> instead.</p> <p>At server startup time, this <strong>Connector</strong> will create a number of request processing threads (based on the value configured for the <code>minProcessors</code> attribute). Each incoming request requires a thread for the duration of that request. If more simultaneous requests are received than can be handled by the currently available request processing threads, additional threads will be created up to the configured maximum (the value of the <code>maxProcessors</code> attribute). If still more simultaneous requests are received, they are stacked up inside the server socket created by the <strong>Connector</strong>, up to the configured maximum (the value of the <code>acceptCount</code> attribute. Any further simultaneous requests will receive "connection refused" errors, until resources are available to process them.</p> </section> <section name="Attributes"> <subsection name="Common Attributes"> <p>All implementations of <strong>Connector</strong> support the following attributes:</p> <attributes> <attribute name="className" required="true"> <p>Java class name of the implementation to use. This class must implement the <code>org.apache.catalina.Connector</code> interface. You must specify the standard value defined below.</p> </attribute> <attribute name="enableLookups" required="false"> <p>Set to <code>true</code> if you want calls to <code>request.getRemoteHost()</code> to perform DNS lookups in order to return the actual host name of the remote client. Set to <code>false</code> to skip the DNS lookup and return the IP address in String form instead (thereby improving performance). By default, DNS lookups are enabled.</p> </attribute> <attribute name="redirectPort" required="false"> <p>If this <strong>Connector</strong> is supporting non-SSL requests, and a request is received for which a matching <code><security-constraint></code> requires SSL transport, Catalina will automatically redirect the request to the port number specified here.</p> </attribute> <attribute name="scheme" required="false"> <p>Set this attribute to the name of the protocol you wish to have returned by calls to <code>request.getScheme()</code>. For example, you would set this attribute to "<code>https</code>" for an SSL Connector. The default value is "<code>http</code>". See <a href="#SSL Support">SSL Support</a> for more information.</p> </attribute> <attribute name="secure" required="false"> <p>Set this attribute to <code>true</code> if you wish to have calls to <code>request.isSecure()</code> to return <code>true</code> for requests received by this Connector (you would want this on an SSL Connector). The default value is <code>false</code>.</p> </attribute> </attributes> </subsection> <subsection name="Standard Implementation"> <p>The standard implementation of <strong>HTTP/1.1 Connector</strong> is <strong>org.apache.catalina.connector.http.HttpConnector</strong>. It supports the following additional attributes (in addition to the common attributes listed above):</p> <attributes> <attribute name="acceptCount" required="false"> <p>The maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full will be refused. The default value is 10.</p> </attribute> <attribute name="allowChunking" required="false"> <p>If set to <code>true</code>, chunked output is allowed when processing HTTP/1.1 requests. This is set to <code>true</code> by default.</p> </attribute> <attribute name="address" required="false"> <p>For servers with more than one IP address, this attribute specifies which address will be used for listening on the specified port. By default, this port will be used on all IP addresses associated with the server.</p> </attribute> <attribute name="bufferSize" required="false"> <p>The size (in bytes) of the buffer to be provided for input streams created by this connector. By default, buffers of 2048 bytes will be provided.</p> </attribute> <attribute name="connectionTimeout" required="false"> <p>The number of milliseconds this <strong>Connector</strong> will wait, after accepting a connection, for the request URI line to be presented. The default value is 60000 (i.e. 60 seconds).</p> </attribute> <attribute name="debug" required="false"> <p>The debugging detail level of log messages generated by this component, with higher numbers creating more detailed output. If not specified, this attribute is set to zero (0).</p> </attribute> <attribute name="maxProcessors" required="false"> <p>The maximum number of request processing threads to be created by this <strong>Connector</strong>, which therefore determines the maximum number of simultaneous requests that can be handled. If not specified, this attribute is set to 20.</p> </attribute> <attribute name="minProcessors" required="false"> <p>The number of request processing threads that will be created when this <strong>Connector</strong> is first started. This attribute should be set to a value smaller than that set for <code>maxProcessors</code>. The default value is 5.</p> </attribute> <attribute name="port" required="true"> <p>The TCP port number on which this <strong>Connector</strong> will create a server socket and await incoming connections. Your operating system will allow only one server application to listen to a particular port number on a particular IP address.</p> </attribute> <attribute name="proxyName" required="false"> <p>If this <strong>Connector</strong> is being used in a proxy configuration, configure this attribute to specify the server name to be returned for calls to <code>request.getServerName()</code>. See <a href="#Proxy Support">Proxy Support</a> for more information.</p> </attribute> <attribute name="proxyPort" required="false"> <p>If this <strong>Connector</strong> is being used in a proxy configuration, configure this attribute to specify the server port to be returned for calls to <code>request.getServerPort()</code>. See <a href="#Proxy Support">Proxy Support</a> for more information.</p> </attribute> <attribute name="tcpNoDelay" required="false"> <p>If set to <code>true</code>, the TCP_NO_DELAY option will be set on the server socket, which improves performance under most circumstances. This is set to <code>true</code> by default.</p> </attribute> </attributes> </subsection> </section> <section name="Nested Elements"> <p>The only element that may be embedded inside a <strong>Connector</strong> element is a <strong>Factory</strong> element, which is used to configure a server socket factory component. See <a href="#SSL Support">SSL Support</a> for more information about when this is required.</p> </section> <section name="Special Features"> <subsection name="HTTP/1.1 and HTTP/1.0 Support"> <p>This <strong>Connector</strong> supports all of the required features of the HTTP/1.1 protocol, as described in RFC 2616, including persistent connections and chunked encoding. If the client (typically a browser) supports only HTTP/1.0, the <strong>Connector</strong> will gracefully fall back to supporting this protocol as well. No special configuration is required to enable this support.</p> <p>RFC 2616 requires that HTTP servers always begin their responses with the highest HTTP version that they claim to support. Therefore, this <strong>Connector</strong> will always return <code>HTTP/1.1</code> at the beginning of its responses.</p> </subsection> <subsection name="Logging Output"> <p>Any debugging or exception logging information generated by this <strong>Connector</strong> will be automatically routed to the <a href="logger.html">Logger</a> that is associated with our related <a href="engine.html">Engine</a>. No special configuration is required to enable this support.</p> </subsection> <subsection name="Proxy Support"> <p>The <code>proxyName</code> and <code>proxyPort</code> attributes can be used when Tomcat is run behind a proxy server. These attributes modify the values returned to web applications that call the <code>request.getServerName()</code> and <code>request.getServerPort()</code> methods, which are often used to construct absolute URLs for redirects. Without configuring these attributes, the values returned would reflect the server name and port on which the connection from the proxy server was received, rather than the server name and port to whom the client directed the original request.</p> <p>For more information, see the <a href="../proxy-howto.html">Proxy Support HOW-TO</a>.</p> </subsection> <subsection name="SSL Support"> <p>You can enable SSL support for a particular instance of this <strong>Connector</strong> by nesting an appropriate <code><Factory></code> element inside, to set up the required SSL socket factory. This element supports the following attributes:</p> <attributes> <attribute name="algorithm" required="false"> <p>The certificate encoding algorithm to be used. If not specified, the default value is <code>SunX509</code>.</p> </attribute> <attribute name="className" required="true"> <p>The fully qualified class name of the SSL server socket factory implementation class. You must specify <code>org.apache.catalina.net.SSLServerSocketFactory</code> here.</p> </attribute> <attribute name="clientAuth" required="false"> <p>Set to <code>true</code> if you want the SSL stack to require a valid certificate chain from the client before accepting a connection. A <code>false</code> value (which is the default) will not require a certificate chain unless the client requests a resource protected by a security constraint that uses <code>CLIENT-CERT</code> authentication.</p> </attribute> <attribute name="keystoreFile" required="false"> <p>The pathname of the keystore file where you have stored the server certificate to be loaded. By default, the pathname is the file "<code>.keystore</code>" in the operating system home directory of the user that is running Tomcat.</p> </attribute> <attribute name="keystorePass" required="false"> <p>The password used to access the server certificate from the specified keystore file. The default value is "<code>changeit</code>". </p> </attribute> <attribute name="keystoreType" required="false"> <p>The type of keystore file to be used for the server certificate. If not specified, the default value is "<code>JKS</code>".</p> </attribute> <attribute name="protocol" required="false"> <p>The version of the SSL protocol to use. If not specified, the default is "<code>TLS</code>".</p> </attribute> </attributes> <p>For more information, see the <a href="../ssl-howto.html">SSL Configuration HOW-TO</a>.</p> </subsection> </section> </body> </document> 1.1 jakarta-tomcat-4.0/webapps/tomcat-docs/config/server.xml Index: server.xml =================================================================== <?xml version="1.0"?> <!DOCTYPE document [ <!ENTITY project SYSTEM "project.xml"> ]> <document> &project; <properties> <author email="[EMAIL PROTECTED]">Craig R. McClanahan</author> <title>The Server Component</title> </properties> <body> <section name="Introduction"> <p>A <strong>Server</strong> element represents the entire Catalina servlet container. Therefore, it must be the single outermost element in the <code>conf/server.xml</code> configuration file. Its attributes represent the characteristics of the servlet container as a whole.</p> </section> <section name="Attributes"> <subsection name="Common Attributes"> <p>All implementations of <strong>Server</strong> support the following attributes:</p> <attributes> <attribute name="className" required="false"> <p>Java class name of the implementation to use. This class must implement the <code>org.apache.catalina.Server</code> interface. If no class name is specified, the standard implementation will be used.</p> </attribute> <attribute name="port" required="true"> <p>The TCP/IP port number on which this server waits for a shutdown command. This connection must be initiated from the same server computer that is running this instance of Tomcat.</p> </attribute> <attribute name="shutdown" required="true"> <p>The command string that must be received via a TCP/IP connection to the specified port number, in order to shut down Tomcat.</p> </attribute> </attributes> </subsection> <subsection name="Standard Implementation"> <p>The standard implementation of <strong>Server</strong> is <strong>org.apache.catalina.core.StandardServer</strong>. It supports the following additional attributes (in addition to the common attributes listed above):</p> <attributes/> </subsection> </section> <section name="Nested Elements"> <p>No nested elements may be embedded inside a <strong>Server</strong>, element, except for one or more <a href="service.html">Service</a> elements. </p> </section> <section name="Special Features"> <p>There are no special features associated with a <strong>Server</strong>. </p> </section> </body> </document> 1.1 jakarta-tomcat-4.0/webapps/tomcat-docs/config/service.xml Index: service.xml =================================================================== <?xml version="1.0"?> <!DOCTYPE document [ <!ENTITY project SYSTEM "project.xml"> ]> <document> &project; <properties> <author email="[EMAIL PROTECTED]">Craig R. McClanahan</author> <title>The Service Component</title> </properties> <body> <section name="Introduction"> <p>A <strong>Service</strong> element represents the combination of one or more <strong>Connector</strong> components that share a single <a href="engine.html">Engine</a> component for processing incoming requests. One or more <strong>Service</strong> elements may be nested inside a <a href="server.html">Server</a> element.</p> </section> <section name="Attributes"> <subsection name="Common Attributes"> <p>All implementations of <strong>Service</strong> support the following attributes:</p> <attributes> <attribute name="className" required="false"> <p>Java class name of the implementation to use. This class must implement the <code>org.apache.catalina.Service</code> interface. If no class name is specified, the standard implementation will be used.</p> </attribute> <attribute name="name" required="true"> <p>The display name of this <strong>Service</strong>, which will be included in log messages if you utilize standard Catalina components. The name of each <strong>Service</strong> that is associated with a particular <a href="server.html">Server</a> must be unique.</p> </attribute> </attributes> </subsection> <subsection name="Standard Implementation"> <p>The standard implementation of <strong>Service</strong> is <strong>org.apache.catalina.core.StandardService</strong>. It supports the following additional attributes (in addition to the common attributes listed above):</p> <attributes/> </subsection> </section> <section name="Nested Elements"> <p>No nested elements may be embedded inside a <strong>Server</strong>, element, except for one or more <strong>Connector</strong> elements followed by a single <a href="engine.html">Engine</a> element. </p> </section> <section name="Special Features"> <p>There are no special features associated with a <strong>Service</strong>. </p> </section> </body> </document> 1.1 jakarta-tomcat-4.0/webapps/tomcat-docs/config/warp.xml Index: warp.xml =================================================================== <?xml version="1.0"?> <!DOCTYPE document [ <!ENTITY project SYSTEM "project.xml"> ]> <document> &project; <properties> <author email="[EMAIL PROTECTED]">Craig R. McClanahan</author> <title>The WARP Connector</title> </properties> <body> <section name="Introduction"> <p>The <strong>WARP Connector</strong> element represents a <strong>Connector</strong> component that communicates with a web connector via the <code>WARP</code> protocol. This is used for cases where you wish to invisibly integrate Tomcat 4 into an existing (or new) Apache installation, and you want Apache to handle the static content contained in the web application, and/or utilize Apache's SSL processing. In many application environments, this will result in better overall performance than running your applications under Tomcat stand-alone using the <a href="http11.html">HTTP/1.1 Connector</a>. However, the only way to know for sure whether it will provide better performance for <strong>your</strong> application is to try it both ways.</p> <p><strong>FIXME</strong> - general description of what happens at server startup time when you have the WARP Connector configured.</p> </section> <section name="Attributes"> <subsection name="Common Attributes"> <p>All implementations of <strong>Connector</strong> support the following attributes:</p> <attributes> <attribute name="className" required="true"> <p>Java class name of the implementation to use. This class must implement the <code>org.apache.catalina.Connector</code> interface. You must specify the standard value defined below.</p> </attribute> <attribute name="enableLookups" required="false"> <p>Set to <code>true</code> if you want calls to <code>request.getRemoteHost()</code> to perform DNS lookups in order to return the actual host name of the remote client. Set to <code>false</code> to skip the DNS lookup and return the IP address in String form instead (thereby improving performance). By default, DNS lookups are enabled.</p> </attribute> <attribute name="redirectPort" required="false"> <p>If this <strong>Connector</strong> is supporting non-SSL requests, and a request is received for which a matching <code><security-constraint></code> requires SSL transport, Catalina will automatically redirect the request to the port number specified here.</p> </attribute> <attribute name="scheme" required="false"> <p>Set this attribute to the name of the protocol you wish to have returned by calls to <code>request.getScheme()</code>. For example, you would set this attribute to "<code>https</code>" for an SSL Connector. The default value is "<code>http</code>". See <a href="#SSL Support">SSL Support</a> for more information.</p> </attribute> <attribute name="secure" required="false"> <p>Set this attribute to <code>true</code> if you wish to have calls to <code>request.isSecure()</code> to return <code>true</code> for requests received by this Connector (you would want this on an SSL Connector). The default value is <code>false</code>.</p> </attribute> </attributes> <p><strong>FIXME</strong> - Update the above descriptions for anything that the WARP Connector delegates to Apache.</p> </subsection> <subsection name="Standard Implementation"> <p>The standard implementation of <strong>WARP Connector</strong> is <strong>org.apache.catalina.connector.warp.WarpConnector</strong>. It supports the following additional attributes (in addition to the common attributes listed above):</p> <attributes/> <p><strong>FIXME</strong> - Document any additional configuration attributes supported by the WARP connector.</p> </subsection> </section> <section name="Nested Elements"> <p><strong>FIXME</strong> - Document any use of a nested <code>Factory</code> element for communicating with <code>mod_webapp</code> over SSL.</p> </section> <section name="Special Features"> <p><strong>FIXME</strong> - Document any special features supported by the WARP Connector.</p> </section> </body> </document>