<?xml version="1.0"?>
<!DOCTYPE document [
  <!ENTITY project SYSTEM "project.xml">
]>
<document url="connectors.html">

    &project;

    <properties>
        <author email="remm@apache.org">Remy Maucherat</author>
        <title>Connectors How To</title>
    </properties>

<body>

<section name="Introduction">

<p>Choosing a connector to use with Tomcat can be difficult. This page will
list the connectors which are supported with this Tomcat release, and will
hopefully help you make the right choice according to your needs.</p>

</section>

<section name="HTTP">

<p>The HTTP connector is setup by default with Tomcat, and is ready to use. This
connector features the lowest latency and best overall performance.</p>

<p>For clustering, a HTTP load balancer <b>with support for web sessions stickiness</b>
must be installed to direct the traffic to the Tomcat servers. Tomcat supports mod_proxy
(on Apache HTTP Server 2.x, and included by default in Apache HTTP Server 2.2) as the load balancer. 
It should be noted that the performance of HTTP proxying is usually lower than the 
performance of AJP, so AJP clustering is often preferable.</p>

</section>

<section name="AJP">

<p>When using a single server, the performance when using a native webserver in 
front of the Tomcat instance is most of the time significantly worse than a
standalone Tomcat with its default HTTP connector, even if a large part of the web
application is made of static files. If integration with the native webserver is 
needed for any reason, an AJP connector will provide faster performance than 
proxied HTTP. AJP clustering is the most efficient from the Tomcat perspective. 
It is otherwise functionally equivalent to HTTP clustering.</p>

<p>The native connectors supported with this Tomcat release are:
<ul>
<li>JK 1.2.x with any of the supported servers</li>
<li>mod_proxy on Apache HTTP Server 2.x (included by default in Apache HTTP Server 2.2), 
with AJP enabled</li>
</ul>
</p>

<p><b>Other native connectors supporting AJP may work, but are no longer supported.</b></p>

</section>

</body>

</document>
