Modified: tomcat/site/trunk/docs/connectors-doc/common_howto/printer/workers.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/connectors-doc/common_howto/printer/workers.html?rev=1848964&r1=1848963&r2=1848964&view=diff ============================================================================== --- tomcat/site/trunk/docs/connectors-doc/common_howto/printer/workers.html (original) +++ tomcat/site/trunk/docs/connectors-doc/common_howto/printer/workers.html Fri Dec 14 17:45:49 2018 @@ -1,4 +1,35 @@ -<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>The Apache Tomcat Connectors - Common HowTo - Workers HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgo...@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shac...@il.ibm.com"><meta name="author" value="Mladen Turk"><meta name="email" value="mt...@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt=" :: Apache Software Foundation" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr> <td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connectors - Common HowTo</h1><h2>Workers HowTo</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0" alt=" "></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote> +<!DOCTYPE html SYSTEM "about:legacy-compat"> +<html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><link href="../../images/docs-stylesheet.css" rel="stylesheet" type="text/css"><title>The Apache Tomcat Connectors: mod_jk, ISAPI redirector, NSAPI redirector (1.2.x) - Workers HowTo</title><meta name="author" content="Henri Gomez"><meta name="author" content="Gal Shachor"><meta name="author" content="Mladen Turk"><script type="application/javascript" data-comments-identifier=""> + "use strict"; // Enable strict mode + + (function() { + var thisScript = document.currentScript; + if (!thisScript) { // Workaround for IE <= 11 + var scripts = document.getElementsByTagName("script"); + thisScript = scripts[scripts.length - 1]; + } + document.addEventListener("DOMContentLoaded", (function() { + var commentsDiv = document.getElementById("comments_thread"); + var commentsShortname = "tomcat"; + var commentsIdentifier = "https://tomcat.apache.org/" + + thisScript.getAttribute("data-comments-identifier") + ".html"; + + (function(w, d) { + if (w.location.hostname.toLowerCase() == "tomcat.apache.org") { + var s = d.createElement("script"); + s.type = "application/javascript"; + s.async = true; + s.src = "https://comments.apache.org/show_comments.lua?site=" + + encodeURIComponent(commentsShortname) + + "&page=" + encodeURIComponent(commentsIdentifier); + d.head.appendChild(s); + } else { + commentsDiv.appendChild(d.createTextNode("Comments are disabled for this page at the moment.")); + } + })(window, document); + }), false); + })(); + </script></head><body><div id="wrapper"><header><div id="header"><div><div><div class="logo noPrint"><a href="http://tomcat.apache.org/"><img alt="Tomcat Home" src="../../images/tomcat.png"></a></div><div style="height: 1px;"></div><div class="asfLogo noPrint"><a href="https://www.apache.org/" target="_blank"><img src="../../images/asf-logo.svg" alt="The Apache Software Foundation" style="width: 266px; height: 83px;"></a></div><h1>The Apache Tomcat Connectors: mod_jk, ISAPI redirector, NSAPI redirector</h1><div style="height: 1px;"></div><div style="clear: left;"></div></div></div></div></header><div id="middle"><div><div id="mainLeft" class="noprint"><div><nav><div><h2>Links</h2><ul><li><a href="index.html">Docs Home</a></li></ul></div><div><h2>Common HowTo</h2><ul><li><a href="common_howto/quick.html">For the impatient</a></li><li><a href="common_howto/workers.html">All about workers</a></li><li><a href="common_howto/timeouts.html">Timeouts</a></li><li><a href="common_howto/load balancers.html">Load Balancing</a></li><li><a href="common_howto/proxy.html">Reverse Proxy</a></li></ul></div><div><h2>Web Server HowTo</h2><ul><li><a href="webserver_howto/apache.html">Apache HTTP Server (mod_jk)</a></li><li><a href="webserver_howto/iis.html">Microsoft IIS (ISAPI redirector)</a></li><li><a href="webserver_howto/nes.html">iPlanet Web Server (NSAPI redirector)</a></li></ul></div><div><h2>Reference Guide</h2><ul><li><a href="reference/workers.html">workers.properties</a></li><li><a href="reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="reference/status.html">Status Worker</a></li><li><a href="reference/apache.html">Apache HTTP Server (mod_jk)</a></li><li><a href="reference/iis.html">Microsoft IIS (ISAPI redirector)</a></li></ul></div><div><h2>AJP Protocol Reference</h2><ul><li><a href="ajp/ajpv13a.html">AJPv13 (ajp13)</a></li><li><a href="ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul></div><div><h2>Miscellaneous Documentation</h2> <ul><li><a href="miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Tomcat+Connectors&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul></div><div><h2>News</h2><ul><li><a href="news/20180301.html">2018</a></li><li><a href="news/20160901.html">2016</a></li><li><a href="news/20150101.html">2015</a></li><li><a href="news/20140201.html">2014</a></li><li><a href="news/20120301.html">2012</a></li><li><a href="news/20110701.html">2011</a></li><li><a href="news/20100101.html">2010</a></li><li><a href="news/20090301.html">2009</a></li><li><a href="news/20081001.html">2008</a></li><li><a href="news/20070301.html">2007</a></li><li><a href="news/20060101.html">2006</a></li><li><a href="news/20050101.html">2005</a></li><li><a href="news/20041100.html">2004</a></li></ul></div></nav></div></div><div id="mainRight"><div id="content"><h2>Workers HowTo</h2><h3 id="Introduction">Introduc tion</h3><div class="text"> <p> A Tomcat worker is a Tomcat instance that is waiting to execute servlets on behalf of some web server. For example, we can have a web server such as the Apache HTTP Server forwarding servlet requests to a @@ -35,7 +66,7 @@ explains how to work with it. This document was originally part of <b>Tomcat: A Minimalistic User's Guide</b> written by Gal Shachor, but has been split off for organisational reasons. </p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Defining Workers"><strong>Defining Workers</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="Defining_Workers">Defining Workers</h3><div class="text"> <p> Defining workers to the Tomcat web server plugin can be done using a properties file (a sample file named workers.properties is available in the conf/ directory). @@ -49,17 +80,16 @@ the file contains entries of the followi <b>worker.list</b>=<a comma separated list of worker names> </p> -<div class="example"><pre> - # the list of workers - worker.list= worker1, worker2 -</pre></div> +<div class="codeBox"><pre><code># the list of workers +worker.list= worker1, worker2 +</code></pre></div> <p> When starting up, the web server plugin will instantiate the workers whose name appears in the <b>worker.list</b> property, these are also the workers to whom you can map requests. The directive can be used multiple times. </p> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Worker Types"><strong>Worker Types</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Worker_Types">Worker Types</h4><div class="text"> <p> Each named worker should also have a few entries to provide additional information on his behalf. This information includes the worker's type and other related worker information. @@ -85,18 +115,17 @@ Where worker name is the name assigned t in the table (a worker name may only contain any space the characters [a-zA-Z0-9\-_]). </p> -<div class="example"><pre> - # Defines a worker named "local" that uses the ajp12 protocol to forward requests to a Tomcat process. - worker.local.type=ajp12 - # Defines a worker named "remote" that uses the ajp13 protocol to forward requests to a Tomcat process. - worker.remote.type=ajp13 - # Defines a worker named "loadbalancer" that loadbalances several Tomcat processes transparently. - worker.loadbalancer.type=lb -</pre></div> +<div class="codeBox"><pre><code># Defines a worker named "local" that uses the ajp12 protocol to forward requests to a Tomcat process. +worker.local.type=ajp12 +# Defines a worker named "remote" that uses the ajp13 protocol to forward requests to a Tomcat process. +worker.remote.type=ajp13 +# Defines a worker named "loadbalancer" that loadbalances several Tomcat processes transparently. +worker.loadbalancer.type=lb +</code></pre></div> -</blockquote></td></tr></table> +</div></div> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Setting Worker Properties"><strong>Setting Worker Properties</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="Setting_Worker_Properties">Setting Worker Properties</h3><div class="text"> <p> After defining the workers you can also specify properties for them. Properties can be specified in the following manner: @@ -108,11 +137,11 @@ worker.<worker name>.<property& Each worker has a set of properties that you can set as specified in the following subsections: -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="ajp12 Worker Properties"><strong>ajp12 Worker Properties</strong></a></font></td></tr><tr><td><blockquote> -<p><p><font color="#ff0000"> +<div class="subsection"><h4 id="ajp12_Worker_Properties">ajp12 Worker Properties</h4><div class="text"> +<p><warn> The worker type <b>ajp12</b> has been <b>deprecated</b> and you should use instead <b>ajp13</b> instead. -</font></p></p> +</warn></p> <p> The ajp12 typed workers forward requests to out-of-process Tomcat workers using the ajp12 protocol over TCP/IP sockets. It does not use persistent connections. @@ -132,24 +161,23 @@ The ajp12 worker properties are: <p> <b>lbfactor</b> property is used when working with a load balancer worker, this is the load balancing factor for the worker. -We'll see more on this in the <a href="../../common_howto/loadbalancers.html">load balancer worker</a> section. +We'll see more on this in the <a href="../common_howto/loadbalancers.html">load balancer worker</a> section. </p> -<div class="example"><pre> - # worker "worker1" will talk to Tomcat listening on machine www.x.com at port 8007 using 2 lb factor - worker.worker1.type=ajp12 - worker.worker1.host=www.x.com - worker.worker1.port=8007 - worker.worker1.lbfactor=2 -</pre></div> +<div class="codeBox"><pre><code># worker "worker1" will talk to Tomcat listening on machine www.x.com at port 8007 using 2 lb factor +worker.worker1.type=ajp12 +worker.worker1.host=www.x.com +worker.worker1.port=8007 +worker.worker1.lbfactor=2 +</code></pre></div> <p> Note: The default port for ajp12 is 8007 </p> -</blockquote></td></tr></table> +</div></div> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="ajp13 Worker Properties"><strong>ajp13 Worker Properties</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="ajp13_Worker_Properties">ajp13 Worker Properties</h4><div class="text"> <p> The ajp13 typed workers forward requests to out-of-process Tomcat workers using the ajp13 protocol over TCP/IP sockets. The main difference between ajp12 and ajp13 are that: @@ -175,27 +203,26 @@ You should note that ajp13 is the recomm </p> -<div class="example"><pre> - # worker "worker2" will talk to Tomcat listening on machine www2.x.com at port 8009 using 3 lb factor - worker.worker2.type=ajp13 - worker.worker2.host=www2.x.com - worker.worker2.port=8009 - worker.worker2.lbfactor=3 - # worker "worker2" uses connections, which will stay no more than 10mn in the connection pool - worker.worker2.connection_pool_timeout=600 - # worker "worker2" ask operating system to send KEEP-ALIVE signal on the connection - worker.worker2.socket_keepalive=1 - # mount can be used as an alternative to the JkMount directive - worker.worker2.mount=/contexta /contexta/* /contextb /contextb/* -</pre></div> +<div class="codeBox"><pre><code># worker "worker2" will talk to Tomcat listening on machine www2.x.com at port 8009 using 3 lb factor +worker.worker2.type=ajp13 +worker.worker2.host=www2.x.com +worker.worker2.port=8009 +worker.worker2.lbfactor=3 +# worker "worker2" uses connections, which will stay no more than 10mn in the connection pool +worker.worker2.connection_pool_timeout=600 +# worker "worker2" ask operating system to send KEEP-ALIVE signal on the connection +worker.worker2.socket_keepalive=1 +# mount can be used as an alternative to the JkMount directive +worker.worker2.mount=/contexta /contexta/* /contextb /contextb/* +</code></pre></div> <p> Notes: In the ajp13 protocol, the default port is 8009 </p> -</blockquote></td></tr></table> +</div></div> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="lb Worker Properties"><strong>lb Worker Properties</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="lb_Worker_Properties">lb Worker Properties</h4><div class="text"> <p> The load balancing worker does not really communicate with Tomcat workers. Instead it is responsible for the management of several "real" workers. @@ -237,61 +264,56 @@ can persist session data across multiple </ul> </p> -<div class="example"><pre> - # The worker balance1 while use "real" workers worker1 and worker2 - worker.balance1.balance_workers=worker1, worker2 -</pre></div> +<div class="codeBox"><pre><code># The worker balance1 while use "real" workers worker1 and worker2 +worker.balance1.balance_workers=worker1, worker2 +</code></pre></div> -</blockquote></td></tr></table> +</div></div> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Status Worker properties"><strong>Status Worker properties</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Status_Worker_properties">Status Worker properties</h4><div class="text"> <p> The status worker does not communicate with Tomcat. Instead it is responsible for the load balancer management. </p> -<div class="example"><pre> - # Add the status worker to the worker list - worker.list=jkstatus - # Define a 'jkstatus' worker using status - worker.jkstatus.type=status -</pre></div> +<div class="codeBox"><pre><code># Add the status worker to the worker list +worker.list=jkstatus +# Define a 'jkstatus' worker using status +worker.jkstatus.type=status +</code></pre></div> <p>Next thing is to mount the requests to the jkstatus worker. For Apache HTTP Servers use:</p> -<div class="example"><pre> - # Add the jkstatus mount point - JkMount /jkmanager/* jkstatus -</pre></div> +<div class="codeBox"><pre><code># Add the jkstatus mount point +JkMount /jkmanager/* jkstatus +</code></pre></div> <p>To obtain a higher level of security use the:</p> -<div class="example"><pre> - # Enable the JK manager access from localhost only - <Location /jkmanager/> - JkMount jkstatus - Require ip 127.0.0.1 - </Location> -</pre></div> +<div class="codeBox"><pre><code># Enable the JK manager access from localhost only +<Location /jkmanager/> + JkMount jkstatus + Require ip 127.0.0.1 +</Location> +</code></pre></div> -</blockquote></td></tr></table> +</div></div> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Property file macros"><strong>Property file macros</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Property_file_macros">Property file macros</h4><div class="text"> <p> You can define "macros" in the property files. These macros let you define properties and later on use them while constructing other properties. </p> -<div class="example"><pre> - # property example, like a network base address - mynet=194.226.31 - # Using the above macro to simplify the address definitions - # for a farm of workers. - worker.node1.host=$(mynet).11 - worker.node2.host=$(mynet).12 - worker.node3.host=$(mynet).13 -</pre></div> +<div class="codeBox"><pre><code># property example, like a network base address +mynet=194.226.31 +# Using the above macro to simplify the address definitions +# for a farm of workers. +worker.node1.host=$(mynet).11 +worker.node2.host=$(mynet).12 +worker.node3.host=$(mynet).13 +</code></pre></div> -</blockquote></td></tr></table> +</div></div> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Hierarchical property configuration"><strong>Hierarchical property configuration</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Hierarchical_property_configuration">Hierarchical property configuration</h4><div class="text"> <p> Workers can reference configurations of other workers. If worker "x" references worker "y", then it inherits all @@ -299,16 +321,15 @@ configuration parameters from "y", excep that have explicitly been set for "x". </p> -<div class="example"><pre> - # worker toe defines some default settings - worker.toe.type=ajp13 - worker.toe.socket_keepalive=true - worker.toe.connect_timeout=10000 - worker.toe.recovery_options=7 - # workers tic and tac inherit those values - worker.tic.reference=worker.toe - worker.tac.reference=worker.toe -</pre></div> +<div class="codeBox"><pre><code># worker toe defines some default settings +worker.toe.type=ajp13 +worker.toe.socket_keepalive=true +worker.toe.connect_timeout=10000 +worker.toe.recovery_options=7 +# workers tic and tac inherit those values +worker.tic.reference=worker.toe +worker.tac.reference=worker.toe +</code></pre></div> <p> Please note, that the reference contains @@ -333,39 +354,38 @@ References are especially useful, when c Try to understand the following two stage references: </p> -<div class="example"><pre> - # We only use one load balancer - worker.list=lb - # Let's define some defaults - worker.basic.port=8009 - worker.basic.type=ajp13 - worker.basic.socket_keepalive=true - worker.basic.connect_timeout=10000 - worker.basic.recovery_options=7 - # And we use them in two groups - worker.lb1.domain=dom1 - worker.lb1.distance=0 - worker.lb1.reference=worker.basic - worker.lb2.domain=dom2 - worker.lb2.distance=1 - worker.lb2.reference=worker.basic - # Now we configure the load balancer - worker.lb.type=lb - worker.lb.method=B - worker.lb.balanced_workers=w11,w12,w21,w22 - worker.w11.host=myhost11 - worker.w11.reference=worker.lb1 - worker.w12.host=myhost12 - worker.w12.reference=worker.lb1 - worker.w21.host=myhost21 - worker.w21.reference=worker.lb2 - worker.w22.host=myhost22 - worker.w22.reference=worker.lb2 -</pre></div> +<div class="codeBox"><pre><code># We only use one load balancer +worker.list=lb +# Let's define some defaults +worker.basic.port=8009 +worker.basic.type=ajp13 +worker.basic.socket_keepalive=true +worker.basic.connect_timeout=10000 +worker.basic.recovery_options=7 +# And we use them in two groups +worker.lb1.domain=dom1 +worker.lb1.distance=0 +worker.lb1.reference=worker.basic +worker.lb2.domain=dom2 +worker.lb2.distance=1 +worker.lb2.reference=worker.basic +# Now we configure the load balancer +worker.lb.type=lb +worker.lb.method=B +worker.lb.balanced_workers=w11,w12,w21,w22 +worker.w11.host=myhost11 +worker.w11.reference=worker.lb1 +worker.w12.host=myhost12 +worker.w12.reference=worker.lb1 +worker.w21.host=myhost21 +worker.w21.reference=worker.lb2 +worker.w22.host=myhost22 +worker.w22.reference=worker.lb2 +</code></pre></div> -</blockquote></td></tr></table> +</div></div> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="A sample worker.properties"><strong>A sample worker.properties</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="A_sample_worker.properties">A sample worker.properties</h3><div class="text"> <p> Since coping with worker.properties on your own is not an easy thing to do, a sample worker.properties file is bundled along JK. @@ -384,26 +404,37 @@ An lb worker that load balances over the </li> </ul> -<div class="example"><pre> - # Define 3 workers, 2 real workers using ajp13, and one being a load balancing worker - worker.list=node1, node2, lbworker - # Set properties for node1 (ajp13) - worker.node1.type=ajp13 - worker.node1.host=localhost - worker.node1.port=8109 - worker.node1.connection_pool_timeout=600 - worker.node1.socket_keepalive=1 - # Set properties for node2 (ajp13) - worker.node2.type=ajp13 - worker.node2.host=localhost - worker.node2.port=8209 - worker.node2.connection_pool_timeout=600 - worker.node2.socket_keepalive=1 - # Set properties for lbworker which uses node1 and node2 - worker.lbworker.type=lb - worker.lbworker.balance_workers=node1,node2 -</pre></div> - -</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em> - Copyright © 1999-2018, Apache Software Foundation - </em></font></div></td></tr></table></body></html> \ No newline at end of file +<div class="codeBox"><pre><code># Define 3 workers, 2 real workers using ajp13, and one being a load balancing worker +worker.list=node1, node2, lbworker +# Set properties for node1 (ajp13) +worker.node1.type=ajp13 +worker.node1.host=localhost +worker.node1.port=8109 +worker.node1.connection_pool_timeout=600 +worker.node1.socket_keepalive=1 +# Set properties for node2 (ajp13) +worker.node2.type=ajp13 +worker.node2.host=localhost +worker.node2.port=8209 +worker.node2.connection_pool_timeout=600 +worker.node2.socket_keepalive=1 +# Set properties for lbworker which uses node1 and node2 +worker.lbworker.type=lb +worker.lbworker.balance_workers=node1,node2 +</code></pre></div> + +</div><div class="noprint"><h3 id="comments_section"> + Comments + </h3><div class="text"><p class="notice"><strong>Notice:</strong> This comments section collects your suggestions + on improving documentation for Apache Tomcat.<br><br> + If you have trouble and need help, read + <a href="https://tomcat.apache.org/findhelp.html">Find Help</a> page + and ask your question on the tomcat-users + <a href="https://tomcat.apache.org/lists.html">mailing list</a>. + Do not ask such questions here. This is not a Q&A section.<br><br> + The Apache Comments System is explained <a href="../../comments.html">here</a>. + Comments may be removed by our moderators if they are either + implemented or considered invalid/off-topic. + </p><div id="comments_thread"></div></div></div></div></div></div></div><footer><div id="footer"> + Copyright © 1999-yyyy, The Apache Software Foundation + </div></footer></div></body></html> \ No newline at end of file
Modified: tomcat/site/trunk/docs/connectors-doc/common_howto/proxy.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/connectors-doc/common_howto/proxy.html?rev=1848964&r1=1848963&r2=1848964&view=diff ============================================================================== --- tomcat/site/trunk/docs/connectors-doc/common_howto/proxy.html (original) +++ tomcat/site/trunk/docs/connectors-doc/common_howto/proxy.html Fri Dec 14 17:45:49 2018 @@ -1,6 +1,35 @@ -<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>The Apache Tomcat Connectors - Common HowTo - Reverse Proxy HowTo</title><meta name="author" value="Rainer Jung"><meta name="email" value="rj...@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt=" :: Apache Software Foundation" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../i ndex.html">Docs Home</a></li></ul><p><strong>Common HowTo</strong></p><ul><li><a href="../common_howto/quick.html">For the impatient</a></li><li><a href="../common_howto/workers.html">All about workers</a></li><li><a href="../common_howto/timeouts.html">Timeouts</a></li><li><a href="../common_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../common_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Web Server HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server (mod_jk)</a></li><li><a href="../webserver_howto/iis.html">Microsoft IIS (ISAPI redirector)</a></li><li><a href="../webserver_howto/nes.html">iPlanet Web Server (NSAPI redirector)</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html ">Apache HTTP Server (mod_jk)</a></li><li><a href="../reference/iis.html">Microsoft IIS (ISAPI redirector)</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13 (ajp13)</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Tomcat+Connectors&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailty pe2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20180301.html">2018</a></li><li><a href="../news/20160901.html">2016</a></li><li><a href="../news/20150101.html">2015</a></li><li><a href="../news/20140201.html">2014</a></li><li><a href="../news/20120301.html">2012</a></li><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><l i><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connectors - Common HowTo</h1><h2>Reverse Proxy HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/proxy.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version - </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote> -<br> +<!DOCTYPE html SYSTEM "about:legacy-compat"> +<html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet" type="text/css"><title>The Apache Tomcat Connectors: mod_jk, ISAPI redirector, NSAPI redirector (1.2.x) - Reverse Proxy HowTo</title><meta name="author" content="Rainer Jung"><script type="application/javascript" data-comments-identifier=""> + "use strict"; // Enable strict mode + + (function() { + var thisScript = document.currentScript; + if (!thisScript) { // Workaround for IE <= 11 + var scripts = document.getElementsByTagName("script"); + thisScript = scripts[scripts.length - 1]; + } + document.addEventListener("DOMContentLoaded", (function() { + var commentsDiv = document.getElementById("comments_thread"); + var commentsShortname = "tomcat"; + var commentsIdentifier = "https://tomcat.apache.org/" + + thisScript.getAttribute("data-comments-identifier") + ".html"; + + (function(w, d) { + if (w.location.hostname.toLowerCase() == "tomcat.apache.org") { + var s = d.createElement("script"); + s.type = "application/javascript"; + s.async = true; + s.src = "https://comments.apache.org/show_comments.lua?site=" + + encodeURIComponent(commentsShortname) + + "&page=" + encodeURIComponent(commentsIdentifier); + d.head.appendChild(s); + } else { + commentsDiv.appendChild(d.createTextNode("Comments are disabled for this page at the moment.")); + } + })(window, document); + }), false); + })(); + </script></head><body><div id="wrapper"><header><div id="header"><div><div><div class="logo noPrint"><a href="http://tomcat.apache.org/"><img alt="Tomcat Home" src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div class="asfLogo noPrint"><a href="https://www.apache.org/" target="_blank"><img src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width: 266px; height: 83px;"></a></div><h1>The Apache Tomcat Connectors: mod_jk, ISAPI redirector, NSAPI redirector</h1><div style="height: 1px;"></div><div style="clear: left;"></div></div></div></div></header><div id="middle"><div><div id="mainLeft" class="noprint"><div><nav><div><h2>Links</h2><ul><li><a href="index.html">Docs Home</a></li></ul></div><div><h2>Common HowTo</h2><ul><li><a href="common_howto/quick.html">For the impatient</a></li><li><a href="common_howto/workers.html">All about workers</a></li><li><a href="common_howto/timeouts.html">Timeouts</a></li><li><a href="common_howto/loadbalanc ers.html">Load Balancing</a></li><li><a href="common_howto/proxy.html">Reverse Proxy</a></li></ul></div><div><h2>Web Server HowTo</h2><ul><li><a href="webserver_howto/apache.html">Apache HTTP Server (mod_jk)</a></li><li><a href="webserver_howto/iis.html">Microsoft IIS (ISAPI redirector)</a></li><li><a href="webserver_howto/nes.html">iPlanet Web Server (NSAPI redirector)</a></li></ul></div><div><h2>Reference Guide</h2><ul><li><a href="reference/workers.html">workers.properties</a></li><li><a href="reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="reference/status.html">Status Worker</a></li><li><a href="reference/apache.html">Apache HTTP Server (mod_jk)</a></li><li><a href="reference/iis.html">Microsoft IIS (ISAPI redirector)</a></li></ul></div><div><h2>AJP Protocol Reference</h2><ul><li><a href="ajp/ajpv13a.html">AJPv13 (ajp13)</a></li><li><a href="ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul></div><div><h2>Miscellaneous Documentation</h2><ul><l i><a href="miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Tomcat+Connectors&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href=" miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul></div><div><h2>News</h2><ul><li><a href="news/20180301.html">2018</a></li><li><a href="news/20160901.html">2016</a></li><li><a href="news/20150101.html">2015</a></li><li><a href="news/20140201.html">2014</a></li><li><a href="news/20120301.html">2012</a></li><li><a href="news/20110701.html">2011</a></li><li><a href="news/20100101.html">2010</a></li><li><a href="news/20090301.html">2009</a></li><li><a href="news/20081001.html">2008</a></li><li><a href="news/20070301.html">2007</a></li><li><a href="news/20060101.html">2006</a></li><li><a href="news/20050101.html">2005</a></li><li><a href="news/20041100.html">2004</a></li></ul></div></nav></div></div><div id="mainRight"><div id="content"><h2>Reverse Proxy HowTo</h2><h3 id="Introduction">Introduc tion</h3><div class="text"> <p>The Apache HTTP Server module mod_jk and its ISAPI and NSAPI redirector variants for Microsoft IIS and the iPlanet Web Server connect the web server to a backend (typically Tomcat) using the AJP protocol. @@ -8,8 +37,7 @@ The web server receives an HTTP(S) reque the request to the backend. This function is usually called a gateway or a proxy, in the context of HTTP it is called a reverse proxy. </p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Typical Problems"><strong>Typical Problems</strong></a></font></td></tr><tr><td><blockquote> -<br> +</div><h3 id="Typical_Problems">Typical Problems</h3><div class="text"> <p>A reverse proxy is not totally transparent to the application on the backend. For instance the host name and port the original client (e.g. browser) needs to talk to belong to the web server and not to the @@ -23,8 +51,7 @@ source IP of the incoming connection, wh connection always comes from the web server. This can be a problem, when the client IP is used by the backend application e.g. for security reasons. </p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="AJP as a Solution"><strong>AJP as a Solution</strong></a></font></td></tr><tr><td><blockquote> -<br> +</div><h3 id="AJP_as_a_Solution">AJP as a Solution</h3><div class="text"> <p>Most of these problems are automatically handled by the AJP protocol and the AJP connectors of the backend. The AJP protocol transports this communication metadata and the backend connector presents this @@ -33,77 +60,76 @@ metadata whenever the application asks f <p>The following list contains the communication metadata handled by AJP and the ServletRequest/HttpServletRequest API calls which can be used to retrieve them: <ul> -<li>local name: <b class="code">getLocalName()</b>. -This is also equal to <b class="code">getServerName()</b>, unless a <b class="code">Host</b> header +<li>local name: <code>getLocalName()</code>. +This is also equal to <code>getServerName()</code>, unless a <code>Host</code> header is contained in the request. In this case the server name is taken from that header. </li> -<li>local IP address: <b class="code">getLocalAddr()</b>. +<li>local IP address: <code>getLocalAddr()</code>. The local IP address was initially not supported. It is available when using version 1.2.41 for Apache or IIS together with Tomcat version at least -6.0.42, 7.0.55 or 8.0.11. For older versions or when using the NSAPI redirector, <b class="code">getLocalAddr()</b> -will incorrectly return the same result as <b class="code">getLocalName()</b>. +6.0.42, 7.0.55 or 8.0.11. For older versions or when using the NSAPI redirector, <code>getLocalAddr()</code> +will incorrectly return the same result as <code>getLocalName()</code>. As a workaround you can forward the local IP address by setting -<b class="code">JkEnvVar SERVER_ADDR</b> and then either using -<b class="code">request.getAttribute("SERVER_ADDR")</b> instead of <b class="code">getLocalAddr()</b> -or wrapping the request using a filter and overriding <b class="code">getLocalAddr()</b> with -<b class="code">request.getAttribute("SERVER_ADDR")</b>. +<code>JkEnvVar SERVER_ADDR</code> and then either using +<code>request.getAttribute("SERVER_ADDR")</code> instead of <code>getLocalAddr()</code> +or wrapping the request using a filter and overriding <code>getLocalAddr()</code> with +<code>request.getAttribute("SERVER_ADDR")</code>. </li> -<li>local port: <b class="code">getLocalPort()</b>. -This is also equal to <b class="code">getServerPort()</b>, unless a <b class="code">Host</b> header +<li>local port: <code>getLocalPort()</code>. +This is also equal to <code>getServerPort()</code>, unless a <code>Host</code> header is contained in the request. In this case the server port is taken from that header if it contains an explicit port, or is equal to the default port of the scheme used. </li> -<li>client address: <b class="code">getRemoteAddr()</b> +<li>client address: <code>getRemoteAddr()</code> </li> -<li>client port: <b class="code">getRemotePort()</b>. +<li>client port: <code>getRemotePort()</code>. The remote port was initially not supported. It is available when using version 1.2.32 for Apache or IIS together with Tomcat version at least -5.5.28, 6.0.20 or 7.0.0. For older versions or when using the NSAPI redirector, <b class="code">getRemotePort()</b> +5.5.28, 6.0.20 or 7.0.0. For older versions or when using the NSAPI redirector, <code>getRemotePort()</code> will incorrectly return 0 or -1. As a workaround you can forward the remote port by setting -<b class="code">JkEnvVar REMOTE_PORT</b> and then either using -<b class="code">request.getAttribute("REMOTE_PORT")</b> instead of <b class="code">getRemotePort()</b> -or wrapping the request using a filter and overriding <b class="code">getRemotePort()</b> with -<b class="code">request.getAttribute("REMOTE_PORT")</b>. +<code>JkEnvVar REMOTE_PORT</code> and then either using +<code>request.getAttribute("REMOTE_PORT")</code> instead of <code>getRemotePort()</code> +or wrapping the request using a filter and overriding <code>getRemotePort()</code> with +<code>request.getAttribute("REMOTE_PORT")</code>. </li> -<li>client host: <b class="code">getRemoteHost()</b> +<li>client host: <code>getRemoteHost()</code> </li> -<li>authentication type: <b class="code">getAuthType()</b> +<li>authentication type: <code>getAuthType()</code> </li> -<li>remote user: <b class="code">getRemoteUser()</b>, -if <b class="code">tomcatAuthentication="false"</b> +<li>remote user: <code>getRemoteUser()</code>, +if <code>tomcatAuthentication="false"</code> </li> -<li>protocol: <b class="code">getProtocol()</b> +<li>protocol: <code>getProtocol()</code> </li> -<li>HTTP method: <b class="code">getMethod()</b> +<li>HTTP method: <code>getMethod()</code> </li> -<li>URI: <b class="code">getRequestURI()</b> +<li>URI: <code>getRequestURI()</code> </li> -<li>HTTPS used: <b class="code">isSecure()</b>, <b class="code">getScheme()</b> +<li>HTTPS used: <code>isSecure()</code>, <code>getScheme()</code> </li> -<li>query string: <b class="code">getQueryString()</b> +<li>query string: <code>getQueryString()</code> </li> </ul> The following additional SSL-related data will be made available by the Apache HTTP Server and forwarded by mod_jk only -if you set <b class="code">SSLOptions +StdEnvVars</b>. For the certificate information you also need -to set <b class="code">SSLOptions +ExportCertData</b>. +if you set <code>SSLOptions +StdEnvVars</code>. For the certificate information you also need +to set <code>SSLOptions +ExportCertData</code>. <ul> -<li>SSL cipher: <b class="code">getAttribute(javax.servlet.request.cipher_suite)</b> +<li>SSL cipher: <code>getAttribute(javax.servlet.request.cipher_suite)</code> </li> -<li>SSL key size: <b class="code">getAttribute(javax.servlet.request.key_size)</b>. -Can be disabled using <b class="code">JkOptions -ForwardKeySize</b>. +<li>SSL key size: <code>getAttribute(javax.servlet.request.key_size)</code>. +Can be disabled using <code>JkOptions -ForwardKeySize</code>. </li> -<li>SSL client certificate: <b class="code">getAttribute(javax.servlet.request.X509Certificate)</b>. -If you want the whole certificate chain, then you need to also set <b class="code">JkOptions ForwardSSLCertChain</b>. +<li>SSL client certificate: <code>getAttribute(javax.servlet.request.X509Certificate)</code>. +If you want the whole certificate chain, then you need to also set <code>JkOptions ForwardSSLCertChain</code>. It is likely, that in this case you also need to adjust the maximal AJP packet size using the worker attribute <a href="../reference/workers.html">max_packet_size</a>. </li> -<li>SSL session ID: <b class="code">getAttribute(javax.servlet.request.ssl_session)</b>. +<li>SSL session ID: <code>getAttribute(javax.servlet.request.ssl_session)</code>. This is for Tomcat, it has not yet been standardized. </li> </ul> </p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Fine Tuning"><strong>Fine Tuning</strong></a></font></td></tr><tr><td><blockquote> -<br> +</div><h3 id="Fine_Tuning">Fine Tuning</h3><div class="text"> <p>In some situations this is not enough though. Assume there is another less clever reverse proxy in front of your web server, for instance an HTTP load balancer or similar device which also serves as an SSL accelerator. @@ -115,7 +141,7 @@ plain HTTP. <p>Another example would be a simple reverse proxy in front of your web server, so that the client IP address that your web server sees is always the IP address of this reverse proxy, and not of the original client. Often such reverse proxies -generate an additional HTTP header, like <b class="code">X-Forwareded-for</b> which +generate an additional HTTP header, like <code>X-Forwareded-for</code> which contains the original client IP address (or a list of IP addresses, if there are more cascading reverse proxies in front). It would be nice, if we could use the content of such a header as the client IP address to pass to the backend. @@ -170,41 +196,39 @@ For the details see the <a href="../refe <p>All variables, that are not SSL-related have only been introduced in version 1.2.27. </p> <p>In addition there are two special shortcuts to influence the client IP address that is forwarded. -Using <b class="code">JkOptions ForwardLocalAddress</b> you can forward the local IP address of the web server +Using <code>JkOptions ForwardLocalAddress</code> you can forward the local IP address of the web server as the client IP address. This can be useful, e.g. when using the Tomcat remote address valve for allowing connections only from registered Apache HTTP Servers. -Using <b class="code">JkOptions ForwardPhysicalAddress</b> you always forward the physical peer +Using <code>JkOptions ForwardPhysicalAddress</code> you always forward the physical peer IP address as the client address. By default mod_jk uses the logical address as provided by the web server. For example the module mod_remoteip sets the logical IP address to the client IP forwarded by proxies -in the <b class="code">X-Forwarded-For</b> header. +in the <code>X-Forwarded-For</code> header. </p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat AJP Connector Settings"><strong>Tomcat AJP Connector Settings</strong></a></font></td></tr><tr><td><blockquote> -<br> +</div><h3 id="Tomcat_AJP_Connector_Settings">Tomcat AJP Connector Settings</h3><div class="text"> <p>As an alternative to using the environment variables described in the previous section (which do only exist when using Apache), you can also configure Tomcat to overwrite -some of the communications data forwarded by mod_jk. The AJP connector in Tomcat's <b class="code">server.xml</b> +some of the communications data forwarded by mod_jk. The AJP connector in Tomcat's <code>server.xml</code> allows to set the <a href="http://tomcat.apache.org/tomcat-8.0-doc/config/ajp.html#Attributes">following properties</a>: <ul> -<li>proxyName: server name as returned by <b class="code">getServerName()</b> +<li>proxyName: server name as returned by <code>getServerName()</code> </li> -<li>proxyPort: server port as returned by <b class="code">getServerPort()</b> +<li>proxyPort: server port as returned by <code>getServerPort()</code> </li> -<li>scheme: protocol scheme as returned by <b class="code">getScheme()</b> +<li>scheme: protocol scheme as returned by <code>getScheme()</code> </li> -<li>secure: set to "true", if you wish <b class="code">isSecure()</b> to return "true". +<li>secure: set to "true", if you wish <code>isSecure()</code> to return "true". </li> </ul> Remember: in general you don't need to set those. AJP automatically handles all cases where the web server running mod_jk knows the right data. </p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="URL Handling"><strong>URL Handling</strong></a></font></td></tr><tr><td><blockquote> -<br> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="URL Rewriting"><strong>URL Rewriting</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="URL_Handling">URL Handling</h3><div class="text"> +<div class="subsection"><h4 id="URL_Rewriting">URL Rewriting</h4><div class="text"> <p>Sometimes one want to change path components of the URLs under which an application -is available. Especially if a web application is deployed as some context, say <b class="code">/myapp</b>, +is available. Especially if a web application is deployed as some context, say <code>/myapp</code>, marketing prefers short URLs, so want the application to be directly available under -<b class="code">http://www.mycompany.com/</b>. Although you can deploy the application as the so-called +<code>http://www.mycompany.com/</code>. Although you can deploy the application as the so-called ROOT context, which will be directly available at "/", admins often prefer not to use the ROOT context, e.g. because only one application can be the root context (per host). </p> @@ -218,90 +242,84 @@ users proceed using the more complex URL That's the easy case, and if this suffices to you, you're lucky. Use a simply RedirectMatch for the Apache HTTP Server: </p> -<div class="example"><pre> -RedirectMatch ^/$ http://www.mycompany.com/myapp/ -</pre></div> -<p>Your application will then be available under <b class="code">http://www.mycompany.com/</b>, +<div class="codeBox"><pre><code>RedirectMatch ^/$ http://www.mycompany.com/myapp/ +</code></pre></div> +<p>Your application will then be available under <code>http://www.mycompany.com/</code>, and each visitor will be immediately redirected to the real URL -<b class="code">http://www.mycompany.com/myapp/</b> +<code>http://www.mycompany.com/myapp/</code> </p> <p>Case B: You need to hide path components for all requests going to the application. Here's the recipe for the case, where you want to hide the first path component -<b class="code">/myapp</b>. More complex manipulations are left as an exercise to the reader. +<code>/myapp</code>. More complex manipulations are left as an exercise to the reader. First the solution for the case of the Apache HTTP Server: </p> -<p>1. Use <a href="http://httpd.apache.org/docs/current/mod/mod_rewrite.html"><b class="code">mod_rewrite</b></a> -to add <b class="code">/myapp</b> to all requests before forwarding to the backend: +<p>1. Use <a href="http://httpd.apache.org/docs/current/mod/mod_rewrite.html"><code>mod_rewrite</code></a> +to add <code>/myapp</code> to all requests before forwarding to the backend: </p> -<div class="example"><pre> -# Don't forget the PT flag! (pass through) +<div class="codeBox"><pre><code># Don't forget the PT flag! (pass through) RewriteRule ^/(.*) http://www.mycompany.com/myapp/$1 [PT] -</pre></div> -<p>2. Use <a href="http://httpd.apache.org/docs/current/mod/mod_headers.html"><b class="code">mod_headers</b></a> +</code></pre></div> +<p>2. Use <a href="http://httpd.apache.org/docs/current/mod/mod_headers.html"><code>mod_headers</code></a> to rewrite any HTTP redirects your application might return. Such redirects typically contain the path components you want to hide, because by the HTTP standard, redirects always need to include the full URL, and your application is not aware of the fact, that your clients talk to it via -some shortened URL. An HTTP redirect is done with a special response header named <b class="code">Location</b>. +some shortened URL. An HTTP redirect is done with a special response header named <code>Location</code>. We rewrite the Location headers of our responses: </p> -<div class="example"><pre> -# Keep protocol, server and port if present, +<div class="codeBox"><pre><code># Keep protocol, server and port if present, # but insert our webapp name before the rest of the URL Header edit Location ^([^/]*//[^/]*)?/(.*)$ $1/myapp/$2 -</pre></div> -<p>3. Use <b class="code">mod_headers</b> again, to rewrite the paths contained in any cookies, +</code></pre></div> +<p>3. Use <code>mod_headers</code> again, to rewrite the paths contained in any cookies, your application might set. Such cookie paths again might contain the path components you want to hide. -A cookie is set with the HTTP response header named <b class="code">Set-Cookie</b>. +A cookie is set with the HTTP response header named <code>Set-Cookie</code>. We rewrite the Set-Cookie headers of our responses: </p> -<div class="example"><pre> -# Fix the cookie path +<div class="codeBox"><pre><code># Fix the cookie path Header edit Set-Cookie "^(.*; Path=/)(.*)" $1/myapp/$2 -</pre></div> +</code></pre></div> <p>3. Some applications might contain hard coded absolute links. In this case check, whether you find a configuration item for your web framework to configure the base URL. If not, your only chance is to parse all response content bodies and do search and replace. This is fragile and very resource intensive. If you really need to do this, you can use -<a href="http://httpd.apache.org/docs/current/mod/mod_proxy_html.html"><b class="code">mod_proxy_html</b></a>, -<a href="http://httpd.apache.org/docs/current/mod/mod_substitute.html"><b class="code">mod_substitute</b></a> -or <a href="http://blogs.sun.com/basant/entry/using_mod_sed_to_filter"><b class="code">mod_sed</b></a> +<a href="http://httpd.apache.org/docs/current/mod/mod_proxy_html.html"><code>mod_proxy_html</code></a>, +<a href="http://httpd.apache.org/docs/current/mod/mod_substitute.html"><code>mod_substitute</code></a> +or <a href="http://blogs.sun.com/basant/entry/using_mod_sed_to_filter"><code>mod_sed</code></a> for this task. </p> <p>If you are using Microsoft IIS as a web server, the ISAPI redirector provides a way of doing the first step with a builtin feature. You define a mapping file for simple prefix changes like this: </p> -<div class="example"><pre> -# Add a context prefix to all requests ... +<div class="codeBox"><pre><code># Add a context prefix to all requests ... /=/myapp/ # ... or change some prefix ... /oldapp/=/myapp/ -</pre></div> -<p>and then put the name of the file in the <b class="code">rewrite_rule_file</b> entry of the registry or your -<b class="code">isapi_redirect.properties</b> file. In your <b class="code">uriworkermap.properties</b> file, you +</code></pre></div> +<p>and then put the name of the file in the <code>rewrite_rule_file</code> entry of the registry or your +<code>isapi_redirect.properties</code> file. In your <code>uriworkermap.properties</code> file, you still need to map the URLs as they are before rewriting! </p> <p>More complex rewrites can be done using the same file, but with regular expressions. A leading -tilde sign '<b class="code">~</b>', indicates, that you are using a regular expression: +tilde sign '<code>~</code>', indicates, that you are using a regular expression: </p> -<div class="example"><pre> -# Use a regular expression rewrite +<div class="codeBox"><pre><code># Use a regular expression rewrite ~/oldapps([0-9]*)/=/newapps$1/ -</pre></div> +</code></pre></div> <p>There is no support for Steps 2 (rewriting redirect responses) or 3 (rewriting cookie paths). </p> -</blockquote></td></tr></table> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="URL Encoding"><strong>URL Encoding</strong></a></font></td></tr><tr><td><blockquote> +</div></div> +<div class="subsection"><h4 id="URL_Encoding">URL Encoding</h4><div class="text"> <p>Some types of problems are triggered by the use of encoded URLs (see <a href="http://en.wikipedia.org/wiki/Percent-encoding">percent encoding</a>). For the same location there exist a lot of different URLs which are equivalent. The reverse proxy needs to inspect the URL in order to apply its own authentication rules and to decide, to which backend it should send the request (or whether it should handle it itself). Therefore the request URL first is normalized: -percent encoded characters are decoded, <b class="code">/./</b> is replaced by <b class="code">/</b>, -<b class="code">/XXX/../</b> is replaced by <b class="code">/</b> and similar manipulations of the URL are done. +percent encoded characters are decoded, <code>/./</code> is replaced by <code>/</code>, +<code>/XXX/../</code> is replaced by <code>/</code> and similar manipulations of the URL are done. After that, the web server might apply rewrite rules to further change the URL in less obvious ways. Finally there is no more way to put the resulting URL in an encoding, which is "similar" to the one which was used for the original URL. @@ -309,22 +327,33 @@ the one which was used for the original <p> For historical reasons, there have been several alternatives, how mod_jk and the ISAPI plugin encoded the resulting URL before sending it to the backend. They could be chosen via -<b class="code">JkOptions</b> (mod_jk) or <b class="code">uri_select</b> (ISAPI). None of those historical +<code>JkOptions</code> (mod_jk) or <code>uri_select</code> (ISAPI). None of those historical encodings are recommended, because they have either negative functionality implications or -pose a security risk. The default encoding since version 1.2.24 is <b class="code">ForwardURIProxy</b> -(mod_jk) or <b class="code">proxy</b> (ISAPI) and it is strongly recommended to keep the default +pose a security risk. The default encoding since version 1.2.24 is <code>ForwardURIProxy</code> +(mod_jk) or <code>proxy</code> (ISAPI) and it is strongly recommended to keep the default and remove all old explicit settings. </p> -</blockquote></td></tr></table> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Attributes"><strong>Request Attributes</strong></a></font></td></tr><tr><td><blockquote> -<br> +</div></div> +</div><h3 id="Request_Attributes">Request Attributes</h3><div class="text"> <p> You can also add more attributes to any request you are forwarding when using the Apache HTTP Server. -For this use the <b class="code">JkEnvVar</b> directive (for details see the +For this use the <code>JkEnvVar</code> directive (for details see the <a href="../reference/apache.html">Apache reference</a> page). Such request attributes can be retrieved on the Tomcat side via request.getAttribute(attributeName). Note that the names of attributes set via mod_jk will not be listed in request.getAttributeNames()! </p> -</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em> - Copyright © 1999-2018, Apache Software Foundation - </em></font></div></td></tr></table></body></html> \ No newline at end of file +</div><div class="noprint"><h3 id="comments_section"> + Comments + </h3><div class="text"><p class="notice"><strong>Notice:</strong> This comments section collects your suggestions + on improving documentation for Apache Tomcat.<br><br> + If you have trouble and need help, read + <a href="https://tomcat.apache.org/findhelp.html">Find Help</a> page + and ask your question on the tomcat-users + <a href="https://tomcat.apache.org/lists.html">mailing list</a>. + Do not ask such questions here. This is not a Q&A section.<br><br> + The Apache Comments System is explained <a href="../comments.html">here</a>. + Comments may be removed by our moderators if they are either + implemented or considered invalid/off-topic. + </p><div id="comments_thread"></div></div></div></div></div></div></div><footer><div id="footer"> + Copyright © 1999-yyyy, The Apache Software Foundation + </div></footer></div></body></html> \ No newline at end of file Modified: tomcat/site/trunk/docs/connectors-doc/common_howto/quick.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/connectors-doc/common_howto/quick.html?rev=1848964&r1=1848963&r2=1848964&view=diff ============================================================================== --- tomcat/site/trunk/docs/connectors-doc/common_howto/quick.html (original) +++ tomcat/site/trunk/docs/connectors-doc/common_howto/quick.html Fri Dec 14 17:45:49 2018 @@ -1,5 +1,35 @@ -<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>The Apache Tomcat Connectors - Common HowTo - Quick Start HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgo...@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt=" :: Apache Software Foundation" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../in dex.html">Docs Home</a></li></ul><p><strong>Common HowTo</strong></p><ul><li><a href="../common_howto/quick.html">For the impatient</a></li><li><a href="../common_howto/workers.html">All about workers</a></li><li><a href="../common_howto/timeouts.html">Timeouts</a></li><li><a href="../common_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../common_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Web Server HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server (mod_jk)</a></li><li><a href="../webserver_howto/iis.html">Microsoft IIS (ISAPI redirector)</a></li><li><a href="../webserver_howto/nes.html">iPlanet Web Server (NSAPI redirector)</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html" >Apache HTTP Server (mod_jk)</a></li><li><a >href="../reference/iis.html">Microsoft IIS (ISAPI >redirector)</a></li></ul><p><strong>AJP Protocol >Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13 >(ajp13)</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension >Proposal</a></li></ul><p><strong>Miscellaneous >Documentation</strong></p><ul><li><a >href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a >href="../miscellaneous/changelog.html">Changelog</a></li><li><a >href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Tomcat+Connectors&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtyp e2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20180301.html">2018</a></li><li><a href="../news/20160901.html">2016</a></li><li><a href="../news/20150101.html">2015</a></li><li><a href="../news/20140201.html">2014</a></li><li><a href="../news/20120301.html">2012</a></li><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li ><a href="../news/20090301.html">2009</a></li><li><a >href="../news/20081001.html">2008</a></li><li><a >href="../news/20070301.html">2007</a></li><li><a >href="../news/20060101.html">2006</a></li><li><a >href="../news/20050101.html">2005</a></li><li><a >href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN >BODY--><td width="80%" valign="top" align="left"><table border="0" >width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache >Tomcat Connectors - Common HowTo</h1><h2>Quick Start HowTo</h2></td><td >align="right" valign="top" nowrap="true"><small><a >href="printer/quick.html"><img src="../images/printer.gif" border="0" >alt="Printer Friendly Version"><br>print-friendly<br>version - </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote> +<!DOCTYPE html SYSTEM "about:legacy-compat"> +<html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet" type="text/css"><title>The Apache Tomcat Connectors: mod_jk, ISAPI redirector, NSAPI redirector (1.2.x) - Quick Start HowTo</title><meta name="author" content="Henri Gomez"><script type="application/javascript" data-comments-identifier=""> + "use strict"; // Enable strict mode + + (function() { + var thisScript = document.currentScript; + if (!thisScript) { // Workaround for IE <= 11 + var scripts = document.getElementsByTagName("script"); + thisScript = scripts[scripts.length - 1]; + } + document.addEventListener("DOMContentLoaded", (function() { + var commentsDiv = document.getElementById("comments_thread"); + var commentsShortname = "tomcat"; + var commentsIdentifier = "https://tomcat.apache.org/" + + thisScript.getAttribute("data-comments-identifier") + ".html"; + + (function(w, d) { + if (w.location.hostname.toLowerCase() == "tomcat.apache.org") { + var s = d.createElement("script"); + s.type = "application/javascript"; + s.async = true; + s.src = "https://comments.apache.org/show_comments.lua?site=" + + encodeURIComponent(commentsShortname) + + "&page=" + encodeURIComponent(commentsIdentifier); + d.head.appendChild(s); + } else { + commentsDiv.appendChild(d.createTextNode("Comments are disabled for this page at the moment.")); + } + })(window, document); + }), false); + })(); + </script></head><body><div id="wrapper"><header><div id="header"><div><div><div class="logo noPrint"><a href="http://tomcat.apache.org/"><img alt="Tomcat Home" src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div class="asfLogo noPrint"><a href="https://www.apache.org/" target="_blank"><img src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width: 266px; height: 83px;"></a></div><h1>The Apache Tomcat Connectors: mod_jk, ISAPI redirector, NSAPI redirector</h1><div style="height: 1px;"></div><div style="clear: left;"></div></div></div></div></header><div id="middle"><div><div id="mainLeft" class="noprint"><div><nav><div><h2>Links</h2><ul><li><a href="index.html">Docs Home</a></li></ul></div><div><h2>Common HowTo</h2><ul><li><a href="common_howto/quick.html">For the impatient</a></li><li><a href="common_howto/workers.html">All about workers</a></li><li><a href="common_howto/timeouts.html">Timeouts</a></li><li><a href="common_howto/loadbalanc ers.html">Load Balancing</a></li><li><a href="common_howto/proxy.html">Reverse Proxy</a></li></ul></div><div><h2>Web Server HowTo</h2><ul><li><a href="webserver_howto/apache.html">Apache HTTP Server (mod_jk)</a></li><li><a href="webserver_howto/iis.html">Microsoft IIS (ISAPI redirector)</a></li><li><a href="webserver_howto/nes.html">iPlanet Web Server (NSAPI redirector)</a></li></ul></div><div><h2>Reference Guide</h2><ul><li><a href="reference/workers.html">workers.properties</a></li><li><a href="reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="reference/status.html">Status Worker</a></li><li><a href="reference/apache.html">Apache HTTP Server (mod_jk)</a></li><li><a href="reference/iis.html">Microsoft IIS (ISAPI redirector)</a></li></ul></div><div><h2>AJP Protocol Reference</h2><ul><li><a href="ajp/ajpv13a.html">AJPv13 (ajp13)</a></li><li><a href="ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul></div><div><h2>Miscellaneous Documentation</h2><ul><l i><a href="miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Tomcat+Connectors&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href=" miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul></div><div><h2>News</h2><ul><li><a href="news/20180301.html">2018</a></li><li><a href="news/20160901.html">2016</a></li><li><a href="news/20150101.html">2015</a></li><li><a href="news/20140201.html">2014</a></li><li><a href="news/20120301.html">2012</a></li><li><a href="news/20110701.html">2011</a></li><li><a href="news/20100101.html">2010</a></li><li><a href="news/20090301.html">2009</a></li><li><a href="news/20081001.html">2008</a></li><li><a href="news/20070301.html">2007</a></li><li><a href="news/20060101.html">2006</a></li><li><a href="news/20050101.html">2005</a></li><li><a href="news/20041100.html">2004</a></li></ul></div></nav></div></div><div id="mainRight"><div id="content"><h2>Quick Start HowTo</h2><h3 id="Introduction">Introducti on</h3><div class="text"> <p> This document describes the configuration files used by JK on the web server side for the 'impatient': @@ -18,24 +48,21 @@ We'll give here minimum servers configuration and an example <b>workers.properties</b> to be able to install and check quickly your configuration. </p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum workers.properties"><strong>Minimum workers.properties</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="Minimum_workers.properties">Minimum workers.properties</h3><div class="text"> <p> Here is a minimum <b>workers.properties</b>, using just ajp13 to connect your web server to the Tomcat engine, complete documentation is available in <a href="workers.html">Workers HowTo</a>. </p> <p> -<div class="example"><pre> - - # Define 1 real worker using ajp13 - worker.list=worker1 - # Set properties for worker1 (ajp13) - worker.worker1.type=ajp13 - worker.worker1.host=localhost - worker.worker1.port=8009 - -</pre></div> +<div class="codeBox"><pre><code># Define 1 real worker using ajp13 +worker.list=worker1 +# Set properties for worker1 (ajp13) +worker.worker1.type=ajp13 +worker.worker1.host=localhost +worker.worker1.port=8009 +</code></pre></div> </p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum Apache HTTP Server configuration"><strong>Minimum Apache HTTP Server configuration</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="Minimum_Apache_HTTP_Server_configuration">Minimum Apache HTTP Server configuration</h3><div class="text"> <p> Here is some very basic information about Apache configuration, a more complete <a href="../webserver_howto/apache.html">HowTo for Apache</a> is available. @@ -84,50 +111,59 @@ </ul> </p> <p> -<div class="example"><pre> - - # Load mod_jk module - # Update this path to match your modules location - LoadModule jk_module modules/mod_jk.so - # Declare the module for <IfModule directive> (remove this line for Apache 2.x) - AddModule mod_jk.c - # Where to find workers.properties - # Update this path to match your conf directory location (put workers.properties next to httpd.conf) - JkWorkersFile /etc/httpd/conf/workers.properties - # Where to put jk shared memory - # Update this path to match your local state directory or logs directory - JkShmFile /var/log/httpd/mod_jk.shm - # Where to put jk logs - # Update this path to match your logs directory location (put mod_jk.log next to access_log) - JkLogFile /var/log/httpd/mod_jk.log - # Set the jk log level [debug/error/info] - JkLogLevel info - # Select the timestamp log format - JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " - # Send everything for context /examples to worker named worker1 (ajp13) - JkMount /examples/* worker1 - -</pre></div> +<div class="codeBox"><pre><code># Load mod_jk module +# Update this path to match your modules location +LoadModule jk_module modules/mod_jk.so +# Declare the module for <IfModule directive> (remove this line for Apache 2.x) +AddModule mod_jk.c +# Where to find workers.properties +# Update this path to match your conf directory location (put workers.properties next to httpd.conf) +JkWorkersFile /etc/httpd/conf/workers.properties +# Where to put jk shared memory +# Update this path to match your local state directory or logs directory +JkShmFile /var/log/httpd/mod_jk.shm +# Where to put jk logs +# Update this path to match your logs directory location (put mod_jk.log next to access_log) +JkLogFile /var/log/httpd/mod_jk.log +# Set the jk log level [debug/error/info] +JkLogLevel info +# Select the timestamp log format +JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " +# Send everything for context /examples to worker named worker1 (ajp13) +JkMount /examples/* worker1 +</code></pre></div> </p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum Microsoft IIS configuration"><strong>Minimum Microsoft IIS configuration</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="Minimum_Microsoft_IIS_configuration">Minimum Microsoft IIS configuration</h3><div class="text"> <p> A separate <a href="../webserver_howto/iis.html">HowTo for the Microsoft IIS web server</a> is available. </p> -<p class="todo"> - This paragraph has not been written yet, but <b>you</b> can contribute to it. - </p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum iPlanet Web Server configuration"><strong>Minimum iPlanet Web Server configuration</strong></a></font></td></tr><tr><td><blockquote> +<todo> +More information to be added! +</todo> +</div><h3 id="Minimum_iPlanet_Web_Server_configuration">Minimum iPlanet Web Server configuration</h3><div class="text"> <p> A separate <a href="../webserver_howto/nes.html">HowTo for the iPlanet Web Server</a> is available. -<p class="todo"> - This paragraph has not been written yet, but <b>you</b> can contribute to it. - </p> +<todo> +More information to be added? +</todo> </p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Test your configuration"><strong>Test your configuration</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="Test_your_configuration">Test your configuration</h3><div class="text"> <p> (Re)start the web server and browse to the <a href="http://localhost/examples/">http://localhost/examples/</a> </p> -</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em> - Copyright © 1999-2018, Apache Software Foundation - </em></font></div></td></tr></table></body></html> \ No newline at end of file +</div><div class="noprint"><h3 id="comments_section"> + Comments + </h3><div class="text"><p class="notice"><strong>Notice:</strong> This comments section collects your suggestions + on improving documentation for Apache Tomcat.<br><br> + If you have trouble and need help, read + <a href="https://tomcat.apache.org/findhelp.html">Find Help</a> page + and ask your question on the tomcat-users + <a href="https://tomcat.apache.org/lists.html">mailing list</a>. + Do not ask such questions here. This is not a Q&A section.<br><br> + The Apache Comments System is explained <a href="../comments.html">here</a>. + Comments may be removed by our moderators if they are either + implemented or considered invalid/off-topic. + </p><div id="comments_thread"></div></div></div></div></div></div></div><footer><div id="footer"> + Copyright © 1999-yyyy, The Apache Software Foundation + </div></footer></div></body></html> \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org