source: nutchez-0.1/tomcat/webapps/docs/proxy-howto.html @ 66

Last change on this file since 66 was 66, checked in by waue, 15 years ago

NutchEz - an easy way to nutch

File size: 13.9 KB
Line 
1<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat 6.0 - Proxy Support HOW-TO</title><meta value="Craig R. McClanahan" name="author"><meta value="craigmcc@apache.org" name="email"></head><body vlink="#525D76" alink="#525D76" link="#525D76" text="#000000" bgcolor="#ffffff"><table cellspacing="0" width="100%" border="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img border="0" alt="
2      The Apache Tomcat Servlet/JSP Container
3    " align="right" src="./images/tomcat.gif"></a></td><td><font face="arial,helvetica,sanserif"><h1>Apache Tomcat 6.0</h1></font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img border="0" alt="Apache Logo" align="right" src="./images/asf-logo.gif"></a></td></tr></table><table cellspacing="4" width="100%" border="0"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr size="1" noshade></td></tr><tr><!--LEFT SIDE NAVIGATION--><td nowrap="true" valign="top" width="20%"><p><strong>Links</strong></p><ul><li><a href="index.html">Docs Home</a></li><li><a href="http://wiki.apache.org/tomcat/FAQ">FAQ</a></li></ul><p><strong>User Guide</strong></p><ul><li><a href="introduction.html">1) Introduction</a></li><li><a href="setup.html">2) Setup</a></li><li><a href="appdev/index.html">3) First webapp</a></li><li><a href="deployer-howto.html">4) Deployer</a></li><li><a href="manager-howto.html">5) Manager</a></li><li><a href="realm-howto.html">6) Realms and AAA</a></li><li><a href="security-manager-howto.html">7) Security Manager</a></li><li><a href="jndi-resources-howto.html">8) JNDI Resources</a></li><li><a href="jndi-datasource-examples-howto.html">9) JDBC DataSources</a></li><li><a href="class-loader-howto.html">10) Classloading</a></li><li><a href="jasper-howto.html">11) JSPs</a></li><li><a href="ssl-howto.html">12) SSL</a></li><li><a href="ssi-howto.html">13) SSI</a></li><li><a href="cgi-howto.html">14) CGI</a></li><li><a href="proxy-howto.html">15) Proxy Support</a></li><li><a href="mbeans-descriptor-howto.html">16) MBean Descriptor</a></li><li><a href="default-servlet.html">17) Default Servlet</a></li><li><a href="cluster-howto.html">18) Clustering</a></li><li><a href="balancer-howto.html">19) Load Balancer</a></li><li><a href="connectors.html">20) Connectors</a></li><li><a href="monitoring.html">21) Monitoring and Management</a></li><li><a href="logging.html">22) Logging</a></li><li><a href="apr.html">23) APR/Native</a></li><li><a href="virtual-hosting-howto.html">24) Virtual Hosting</a></li><li><a href="aio.html">25) Advanced IO</a></li><li><a href="extras.html">26) Additional Components</a></li><li><a href="maven-jars.html">27) Mavenized</a></li></ul><p><strong>Reference</strong></p><ul><li><a href="RELEASE-NOTES.txt">Release Notes</a></li><li><a href="config/index.html">Configuration</a></li><li><a href="api/index.html">Javadocs</a></li><li><a href="http://tomcat.apache.org/connectors-doc/">JK 1.2 Documentation</a></li></ul><p><strong>Apache Tomcat Development</strong></p><ul><li><a href="building.html">Building</a></li><li><a href="changelog.html">Changelog</a></li><li><a href="http://wiki.apache.org/tomcat/TomcatVersions">Status</a></li><li><a href="developers.html">Developers</a></li><li><a href="architecture/index.html">Architecture</a></li><li><a href="funcspecs/index.html">Functional Specs.</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td align="left" valign="top" width="80%"><table cellspacing="4" width="100%" border="0"><tr><td valign="top" align="left"><h1>Apache Tomcat 6.0</h1><h2>Proxy Support HOW-TO</h2></td><td nowrap="true" valign="top" align="right"><small><a href="printer/proxy-howto.html"><img alt="Printer Friendly Version" border="0" src="./images/printer.gif"><br>print-friendly<br>version
4                    </a></small></td></tr></table><table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
5
6<p>Using standard configurations of Tomcat, web applications can ask for
7the server name and port number to which the request was directed for
8processing.  When Tomcat is running standalone with the
9<a href="config/coyote.html">Coyote HTTP/1.1 Connector</a>, it will generally
10report the server name specified in the request, and the port number on
11which the <strong>Connector</strong> is listening.  The servlet API
12calls of interest, for this purpose, are:</p>
13<ul>
14<li><code>ServletRequest.getServerName()</code>: Returns the host name of the server to which the request was sent.</li>
15<li><code>ServletRequest.getServerPort()</code>: Returns the host name of the server to which the request was sent.</li>
16<li><code>ServletRequest.getLocalName()</code>: Returns the host name of the Internet Protocol (IP) interface on which the request was received.</li>
17<li><code>ServletRequest.getLocalPort()</code>:  Returns the Internet Protocol (IP) port number of the interface on which the request was received.</li>
18</ul>
19
20<p>When you are running behind a proxy server (or a web server that is
21configured to behave like a proxy server), you will sometimes prefer to
22manage the values returned by these calls.  In particular, you will
23generally want the port number to reflect that specified in the original
24request, not the one on which the <strong>Connector</strong> itself is
25listening.  You can use the <code>proxyName</code> and <code>proxyPort</code>
26attributes on the <code>&lt;Connector&gt;</code> element to configure
27these values.</p>
28
29<p>Proxy support can take many forms.  The following sections describe
30proxy configurations for several common cases.</p>
31
32</blockquote></td></tr></table><table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Apache 1.3 Proxy Support"><strong>Apache 1.3 Proxy Support</strong></a></font></td></tr><tr><td><blockquote>
33
34<p>Apache 1.3 supports an optional module (<code>mod_proxy</code>) that
35configures the web server to act as a proxy server.  This can be used to
36forward requests for a particular web application to a Tomcat 6 instance,
37without having to configure a web connector such as <code>mod_jk</code>.
38To accomplish this, you need to perform the following tasks:</p>
39<ol>
40<li>Configure your copy of Apache so that it includes the
41    <code>mod_proxy</code> module.  If you are building from source,
42    the easiest way to do this is to include the
43    <code>--enable-module=proxy</code> directive on the
44    <code>./configure</code> command line.</li>
45<li>If not already added for you, make sure that you are loading the
46    <code>mod_proxy</code> module at Apache startup time, by using the
47    following directives in your <code>httpd.conf</code> file:
48<div align="left"><table border="0" cellpadding="0" cellspacing="4"><tr><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td></tr><tr><td width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" bgcolor="#ffffff"><pre>
49LoadModule proxy_module  {path-to-modules}/mod_proxy.so
50AddModule  mod_proxy.c
51</pre></td><td width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td></tr><tr><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td></tr></table></div></li>
52<li>Include two directives in your <code>httpd.conf</code> file for
53    each web application that you wish to forward to Tomcat 6.  For
54    example, to forward an application at context path <code>/myapp</code>:
55<div align="left"><table border="0" cellpadding="0" cellspacing="4"><tr><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td></tr><tr><td width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" bgcolor="#ffffff"><pre>
56ProxyPass         /myapp  http://localhost:8081/myapp
57ProxyPassReverse  /myapp  http://localhost:8081/myapp
58</pre></td><td width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td></tr><tr><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td></tr></table></div>
59    which tells Apache to forward URLs of the form
60    <code>http://localhost/myapp/*</code> to the Tomcat 6 connector
61    listening on port 8081.</li>
62<li>Configure your copy of Tomcat 6 to include a special
63    <code>&lt;Connector&gt;</code> element, with appropriate
64    proxy settings, for example:
65<div align="left"><table border="0" cellpadding="0" cellspacing="4"><tr><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td></tr><tr><td width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" bgcolor="#ffffff"><pre>
66&lt;Connector port="8081" ...
67              proxyName="www.mycompany.com"
68              proxyPort="80"/&gt;
69</pre></td><td width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td></tr><tr><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td><td height="1" width="1" bgcolor="#023264"><img border="0" hspace="0" vspace="0" height="1" width="1" src="./images/void.gif"></td></tr></table></div>
70    which will cause servlets inside this web application to think that
71    all proxied requests were directed to <code>www.mycompany.com</code>
72    on port 80.</li>
73<li>It is legal to omit the <code>proxyName</code> attribute from the
74    <code>&lt;Connector&gt;</code> element.  If you do so, the value
75    returned by <code>request.getServerName()</code> will by the host
76    name on which Tomcat is running.  In the example above, it would be
77    <code>localhost</code>.</li>
78<li>If you also have a <code>&lt;Connector&gt;</code> listening on port
79    8080 (nested within the same <a href="config/service.html">Service</a>
80    element), the requests to either port will share the same set of
81    virtual hosts and web applications.</li>
82<li>You might wish to use the IP filtering features of your operating
83    system to restrict connections to port 8081 (in this example) to
84    be allowed <strong>only</strong> from the server that is running
85    Apache.</li>
86<li>Alternatively, you can set up a series of web applications that are
87    only available via proxying, as follows:
88    <ul>
89    <li>Configure another <code>&lt;Service&gt;</code> that contains
90        only a <code>&lt;Connector&gt;</code> for the proxy port.</li>
91    <li>Configure appropriate <a href="config/engine.html">Engine</a>,
92        <a href="config/host.html">Host</a>, and
93        <a href="config/context.html">Context</a> elements for the virtual hosts
94        and web applications accessible via proxying.</li>
95    <li>Optionally, protect port 8081 with IP filters as described
96        earlier.</li>
97    </ul></li>
98<li>When requests are proxied by Apache, the web server will be recording
99    these requests in its access log.  Therefore, you will generally want to
100    disable any access logging performed by Tomcat itself.</li>
101</ol>
102
103<p>When requests are proxied in this manner, <strong>all</strong> requests
104for the configured web applications will be processed by Tomcat (including
105requests for static content).  You can improve performance by using the
106<code>mod_jk</code> web connector instead of <code>mod_proxy</code>.
107<code>mod_jk</code> can be configured so that the web server serves static
108content that is not processed by filters or security constraints defined
109within the web application's deployment descriptor
110(<code>/WEB-INF/web.xml</code>).</p>
111
112</blockquote></td></tr></table><table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Apache 2.0 Proxy Support"><strong>Apache 2.0 Proxy Support</strong></a></font></td></tr><tr><td><blockquote>
113The same instructions hold true as for 1.3. (Except in Apache 2.0,
114you may omit <code>AddModule  mod_proxy.c</code>)
115</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr size="1" noshade></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font size="-1" color="#525D76"><em>
116        Copyright &copy; 1999-2008, Apache Software Foundation
117        </em></font></div></td></tr></table></body></html>
Note: See TracBrowser for help on using the repository browser.