Modified: 
tomcat/site/trunk/docs/connectors-doc/common_howto/printer/loadbalancers.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/connectors-doc/common_howto/printer/loadbalancers.html?rev=1848964&r1=1848963&r2=1848964&view=diff
==============================================================================
--- 
tomcat/site/trunk/docs/connectors-doc/common_howto/printer/loadbalancers.html 
(original)
+++ 
tomcat/site/trunk/docs/connectors-doc/common_howto/printer/loadbalancers.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 - 
LoadBalancer HowTo</title><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>LoadBalancer 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>
 > 
-<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) - LoadBalancer HowTo</title><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&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;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>LoadBalancer HowTo</h2><h3 
id="Introduction">Int
 roduction</h3><div class="text"> 
 <p>A load balancer is a worker that does not directly communicate with Tomcat.
 Instead it is responsible for the management of several "real" workers,
 called members or sub workers of the load balancer.</p>
@@ -40,8 +70,8 @@ load balancer. So a single Tomcat proces
 <p>Some of the features provided by a load balancer are even interesting, when
 only working with a single member worker (where load balancing is not 
possible).</p>
 
-<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td 
bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a 
name="Basic Load Balancer Properties"><strong>Basic Load Balancer 
Properties</strong></a></font></td></tr><tr><td><blockquote>
-<p>A worker is configured as a load balancer by setting its worker <b 
class="code">type</b>
+<div class="subsection"><h4 id="Basic_Load_Balancer_Properties">Basic Load 
Balancer Properties</h4><div class="text">
+<p>A worker is configured as a load balancer by setting its worker 
<code>type</code>
 to <b>lb</b>.
 </p>
 <p>
@@ -50,7 +80,7 @@ The following table specifies some prope
 <ul>
 <li><b>balance_workers</b> is a comma separated list of names of the member 
workers of the
 load balancer. These workers are typically of type <b>ajp13</b>. The member 
workers do
-not need to appear in the <b class="code">worker.list</b> property themselves, 
adding the
+not need to appear in the <code>worker.list</code> property themselves, adding 
the
 load balancer to it suffices.</li>
 <li><b>sticky_session</b> specifies whether requests with SESSION ID's should 
be routed
 back to the same Tomcat instance that created the session. You can set 
sticky_session to
@@ -58,46 +88,45 @@ back to the same Tomcat instance that cr
 multiple instances of Tomcat - or if your application is stateless.
 By default sticky_session is set to <b>true</b>.</li>
 <li><b>lbfactor</b> can be added to each member worker to configure individual
-strengths for the members. A higher <b class="code">lbfactor</b> will lead to 
more
+strengths for the members. A higher <code>lbfactor</code> will lead to more
 requests being balanced to that worker. The factors must be given by integers 
and the
 load will be distributed proportional to the factors given. Higher factors 
lead to
 more requests.</li>
 </ul>
 
-<div class="example"><pre>
-  # The load balancer worker balance1 will distribute
-  # load to the members worker1 and worker2
-  worker.balance1.type=lb
-  worker.balance1.balance_workers=worker1, worker2
-  worker.worker1.type=ajp13
-  worker.worker1.host=myhost1
-  worker.worker1.port=8009
-  worker.worker2.type=ajp13
-  worker.worker1.host=myhost2
-  worker.worker1.port=8009
-</pre></div>
+<div class="codeBox"><pre><code># The load balancer worker balance1 will 
distribute
+# load to the members worker1 and worker2
+worker.balance1.type=lb
+worker.balance1.balance_workers=worker1, worker2
+worker.worker1.type=ajp13
+worker.worker1.host=myhost1
+worker.worker1.port=8009
+worker.worker2.type=ajp13
+worker.worker1.host=myhost2
+worker.worker1.port=8009
+</code></pre></div>
 
-<p><font color="#ff0000">
+<warn>
 Session stickyness is not implemented using a tracking table for sessions.
 Instead each Tomcat instance gets an individual name and adds its name at
 the end of the session id. When the load balancer sees a session id, it
 finds the name of the Tomcat instance and sends the request via the correct
 member worker. For this to work you must set the name of the Tomcat instances
-as the value of the <b class="code">jvmRoute</b> attribute in the Engine 
element of
+as the value of the <code>jvmRoute</code> attribute in the Engine element of
 each Tomcat's server.xml. The name of the Tomcat needs to be equal to the name
 of the corresponding load balancer member. In the above example, Tomcat on host
-"myhost1" needs <b class="code">jvmRoute="worker1"</b>, Tomcat on host 
"myhost2"
-needs <b class="code">jvmRoute="worker2"</b>.
-</font></p>
+"myhost1" needs <code>jvmRoute="worker1"</code>, Tomcat on host "myhost2"
+needs <code>jvmRoute="worker2"</code>.
+</warn>
 
 <p>For a complete reference of all load balancer configuration
-attributes, please consult the worker <a 
href="../../reference/workers.html">reference</a>.
+attributes, please consult the worker <a 
href="../reference/workers.html">reference</a>.
 </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="Advanced Load Balancer Worker Properties"><strong>Advanced Load Balancer 
Worker Properties</strong></a></font></td></tr><tr><td><blockquote>
+<div class="subsection"><h4 
id="Advanced_Load_Balancer_Worker_Properties">Advanced Load Balancer Worker 
Properties</h4><div class="text">
 <p>The load balancer supports complex topologies and failover configurations.
-Using the member attribute <b class="code">distance</b> you can group members.
+Using the member attribute <code>distance</code> you can group members.
 The load balancer will always send a request to a member of lowest distance.
 Only when all of those are broken, it will balance to the members of the
 next higher configured distance. This allows to define priorities between
@@ -107,11 +136,11 @@ Tomcat instances in different data cente
 or a persisting session manager (e.g. via a database), one often splits
 up the Tomcat farm into replication groups. In case of failure of a member,
 the load balancer needs to know, which other members share the session.
-This is configured using the <b class="code">domain</b> attribute. All workers
+This is configured using the <code>domain</code> attribute. All workers
 with the same domain are assumed to share the sessions.</p>
 <p>For maintenance purposes you can tell the load balancer to not
 allow any new sessions on some members, or even not use them at all.
-This is controlled by the member attribute <b class="code">activation</b>.
+This is controlled by the member attribute <code>activation</code>.
 The value <b>Active</b> allows normal use of a member, <b>disabled</b>
 will not create new sessions on it, but still allow sticky requests,
 and <b>stopped</b> will no longer send any requests to the member.
@@ -121,84 +150,92 @@ Depending on the usage pattern of the ap
 minutes to hours. Switching the worker to stopped immediately before
 maintenance will reduce logging of false errors by mod_jk.</p>
 <p>Finally you can also configure hot spare workers by using
-<b class="code">activation</b> set to <b>disabled</b> in combination with
-the attribute <b class="code">redirect</b> added to the other workers:</p>
+<code>activation</code> set to <b>disabled</b> in combination with
+the attribute <code>redirect</code> added to the other workers:</p>
 
-<div class="example"><pre>
-  # The advanced router LB worker
-  worker.list=router
-  worker.router.type=lb
-  worker.router.balance_workers=worker1,worker2
-
-  # Define the first member worker
-  worker.worker1.type=ajp13
-  worker.worker1.host=myhost1
-  worker.worker1.port=8009
-  # Define preferred failover node for worker1
-  worker.worker1.redirect=worker2
-
-  # Define the second member worker
-  worker.worker2.type=ajp13
-  worker.worker2.host=myhost2
-  worker.worker2.port=8009
-  # Disable worker2 for all requests except failover
-  worker.worker2.activation=disabled
-</pre></div>
+<div class="codeBox"><pre><code># The advanced router LB worker
+worker.list=router
+worker.router.type=lb
+worker.router.balance_workers=worker1,worker2
+
+# Define the first member worker
+worker.worker1.type=ajp13
+worker.worker1.host=myhost1
+worker.worker1.port=8009
+# Define preferred failover node for worker1
+worker.worker1.redirect=worker2
+
+# Define the second member worker
+worker.worker2.type=ajp13
+worker.worker2.host=myhost2
+worker.worker2.port=8009
+# Disable worker2 for all requests except failover
+worker.worker2.activation=disabled
+</code></pre></div>
 
 <p>
-The <b class="code">redirect</b> flag on worker1 tells the load balancer
+The <code>redirect</code> flag on worker1 tells the load balancer
 to redirect the requests to worker2 in case that worker1 has a problem.
 In all other cases worker2 will not receive any requests, thus acting
 like a hot standby.
 </p>
 
-<p>A final note about setting <b class="code">activation</b> to 
<b>disabled</b>:
+<p>A final note about setting <code>activation</code> to <b>disabled</b>:
 The session id coming with a request is send either
-as part of the request URL (<b class="code">;jsessionid=...</b>) or via a 
cookie.
+as part of the request URL (<code>;jsessionid=...</code>) or via a cookie.
 When using bookmarks or browsers that are running since a long time,
 it is possible to send a request carrying an old and invalid session id
 pointing at a disabled member.
 Since the load balancer does not have a list of valid sessions, it will
 forward the request to the disabled member. Thus draining takes longer than
 expected. To handle such cases, you can add a Servlet filter to your web
-application, which checks the request attribute <b 
class="code">JK_LB_ACTIVATION</b>.
+application, which checks the request attribute <code>JK_LB_ACTIVATION</code>.
 This attribute contains one of the strings "ACT", "DIS" or "STP". If you
 detect "DIS" and the session for the request is no longer active, delete the
 session cookie and redirect using a self-referential URL. The redirected
 request will then no longer carry session information and thus the load
 balancer will not send it to the disabled worker. The request attribute
-<b class="code">JK_LB_ACTIVATION</b> has been added in version 1.2.32.</p>
-</blockquote></td></tr></table>
+<code>JK_LB_ACTIVATION</code> has been added in version 1.2.32.</p>
+</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 worker management. It is
 especially useful when combined with load balancer workers.
 </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
- &lt;Location /jkmanager/&gt;
-    JkMount jkstatus
-    Require ip 127.0.0.1
- &lt;/Location&gt;
-</pre></div>
-
-</blockquote></td></tr></table>
-
-</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 &copy; 1999-2018, Apache Software Foundation
-        </em></font></div></td></tr></table></body></html>
\ No newline at end of file
+<div class="codeBox"><pre><code># Enable the JK manager access from localhost 
only
+&lt;Location /jkmanager/&gt;
+  JkMount jkstatus
+  Require ip 127.0.0.1
+&lt;/Location&gt;
+</code></pre></div>
+
+</div></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&amp;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 &copy; 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/printer/proxy.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/connectors-doc/common_howto/printer/proxy.html?rev=1848964&r1=1848963&r2=1848964&view=diff
==============================================================================
--- tomcat/site/trunk/docs/connectors-doc/common_howto/printer/proxy.html 
(original)
+++ tomcat/site/trunk/docs/connectors-doc/common_howto/printer/proxy.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 - 
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><!--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"><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>
 
-<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/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&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;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">In
 troduction</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.
@@ -7,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
@@ -22,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
@@ -32,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>.
+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.
@@ -114,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.
@@ -164,46 +191,44 @@ using these variables.
 variables whose name does not begin with "JK" are set directly by the Apache 
HTTP Server.
 If you want to change the data, but do not want to negatively influence the 
behaviour
 of other modules, you can change the names of all variables mod_jk uses to 
private ones.
-For the details see the <a href="../../reference/apache.html">Apache 
reference</a> page.
+For the details see the <a href="../reference/apache.html">Apache 
reference</a> page.
 </p>
 <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>
@@ -217,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.
@@ -308,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
-<a href="../../reference/apache.html">Apache reference</a> page). Such request 
attributes can be
+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 &copy; 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&amp;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 &copy; 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/printer/quick.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/connectors-doc/common_howto/printer/quick.html?rev=1848964&r1=1848963&r2=1848964&view=diff
==============================================================================
--- tomcat/site/trunk/docs/connectors-doc/common_howto/printer/quick.html 
(original)
+++ tomcat/site/trunk/docs/connectors-doc/common_howto/printer/quick.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 - 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><!--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"><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) - 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/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&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;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">Intr
 oduction</h3><div class="text">
 <p>
   This document describes the configuration files used by JK on the
   web server side for the 'impatient':
@@ -17,27 +48,24 @@
   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.
+   more complete <a href="../webserver_howto/apache.html">HowTo for Apache</a> 
is available.
 </p>
 <p>
   You should first have <b>mod_jk.so</b> (unix) or <b>mod_jk.dll</b> (Windows) 
installed
@@ -83,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 &lt;IfModule directive&gt; (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>
-</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>
-<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>
-<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>
+<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 &lt;IfModule directive&gt; (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>
+</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>
+<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.
+<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 &copy; 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&amp;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 &copy; 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/printer/timeouts.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/connectors-doc/common_howto/printer/timeouts.html?rev=1848964&r1=1848963&r2=1848964&view=diff
==============================================================================
--- tomcat/site/trunk/docs/connectors-doc/common_howto/printer/timeouts.html 
(original)
+++ tomcat/site/trunk/docs/connectors-doc/common_howto/printer/timeouts.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 - 
Timeouts 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><!--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>Timeouts 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>
 > 
-<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) - Timeouts 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/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&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;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>Timeouts HowTo</h2><h3 
id="Introduction">Introdu
 ction</h3><div class="text"> 
 <p>Setting communication timeouts is very important to improve the
 communication process. They help to detect problems and stabilise
 a distributed system. JK can use several different timeout types, which
@@ -9,21 +39,19 @@ hints how to find appropriate values.
 </p>
 <p>All timeouts can be configured in the workers.properties file.
 For a complete reference of all worker configuration
-items, please consult the worker <a 
href="../../reference/workers.html">reference</a>.
+items, please consult the worker <a 
href="../reference/workers.html">reference</a>.
 This page assumes, that you are using at least version 1.2.16 of JK.
 Dependencies on newer versions will be mentioned where necessary.
 </p>
-<p><font color="#ff0000">
+<span style="color: red;">
 Do not set timeouts to extreme values. Very small timeouts will likely
 be counterproductive.
-</font></p>
-<p><font color="#ff0000">
+<br><br>
 Long Garbage Collection pauses on the backend do not make a good
 fit with some timeouts. Try to optimise your Java memory and GC settings.
-</font></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="JK Timeout Attributes"><strong>JK 
Timeout Attributes</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="CPing/CPong"><strong>CPing/CPong</strong></a></font></td></tr><tr><td><blockquote>
+</span>
+</div><h3 id="JK_Timeout_Attributes">JK Timeout Attributes</h3><div 
class="text">
+<div class="subsection"><h4 id="CPing/CPong">CPing/CPong</h4><div class="text">
 <p>
 CPing/CPong is our notion for using small test packets to check the
 status of backend connections. JK can use such test packets directly after 
establishing
@@ -101,9 +129,9 @@ Until version 1.2.27 <b>ping_mode</b> an
 exist and to enable connect or prepost mode CPing you had to set 
<b>connect_timeout</b>
 respectively <b>prepost_timeout</b> to some reasonable positive value.
 </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="Low-Level TCP Timeouts"><strong>Low-Level TCP 
Timeouts</strong></a></font></td></tr><tr><td><blockquote>
+<div class="subsection"><h4 id="Low-Level_TCP_Timeouts">Low-Level TCP 
Timeouts</h4><div class="text">
 <p>
 Some platforms allow to set timeouts for all operations on TCP sockets.
 This is available for Linux and Windows, other platforms do not support this,
@@ -136,12 +164,12 @@ We recommend using <b>socket_connect_tim
 failure situations failure detection during connection establishment
 can take several minutes due to TCP retransmits. Depending on the quality
 of your network a timeout somewhere between 1000 and 5000 milliseconds
-should be fine. Note that <b class="code">socket_timeout</b> is in seconds, and
-<b class="code">socket_connect_timeout</b> in milliseconds.
+should be fine. Note that <code>socket_timeout</code> is in seconds, and
+<code>socket_connect_timeout</code> in milliseconds.
 </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="Connection Pools and Idle Timeouts"><strong>Connection Pools and Idle 
Timeouts</strong></a></font></td></tr><tr><td><blockquote>
+<div class="subsection"><h4 id="Connection_Pools_and_Idle_Timeouts">Connection 
Pools and Idle Timeouts</h4><div class="text">
 <p>
 JK handles backend connections in a connection pool per web server process.
 The connections are used in a persistent mode. After a request completed
@@ -208,9 +236,9 @@ The JK attribute <b>connection_pool_mins
 how many idle connections remain when the pool gets shrunken.
 By default this is half of the maximum pool size.
 </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="Firewall Connection Dropping"><strong>Firewall Connection 
Dropping</strong></a></font></td></tr><tr><td><blockquote>
+<div class="subsection"><h4 id="Firewall_Connection_Dropping">Firewall 
Connection Dropping</h4><div class="text">
 <p>
 One particular problem with idle connections comes from firewalls, that
 are often deployed between the web server layer and the backend.
@@ -252,9 +280,9 @@ connections when using JK together with
 The amount of performance impact this will have depends on the details of
 your network and your firewall.
 </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="Reply Timeout"><strong>Reply 
Timeout</strong></a></font></td></tr><tr><td><blockquote>
+<div class="subsection"><h4 id="Reply_Timeout">Reply Timeout</h4><div 
class="text">
 <p>
 JK can also use a timeout on request replies. This timeout does not
 measure the full processing time of the response. Instead it controls,
@@ -270,13 +298,13 @@ reply timeout. Applications that do not
 are batch type applications, data warehouse and reporting applications
 which are expected to observe long processing times.
 </p>
-<p><font color="#ff0000">
+<span style="color: red;">
 If JK aborts waiting for a response, because a reply timeout fired,
 there is no way to stop processing on the backend. Although you free
 processing resources in your web server, the request
 will continue to run on the backend - without any way to send back a
 result once the reply timeout fired.
-</font></p>
+</span>
 <p>
 JK uses the worker attribute <b>reply_timeout</b> to set reply timeouts.
 The default value is "0" (timeout disabled) and you can set it to any
@@ -298,15 +326,14 @@ In combination with a load balancing wor
 worker of the load balancer if a reply timeout fires. The worker will then
 no longer be used until it gets recovered during the next automatic
 maintenance task. Starting with JK 1.2.24 you can improve this behaviour using
-<b><a href="../../reference/workers.html">max_reply_timeouts</a></b>. This
+<b><a href="../reference/workers.html">max_reply_timeouts</a></b>. This
 attribute will allow occasional long running requests without disabling the
 worker. Only if those requests happen to often, the worker gets disabled by the
 load balancer.
 </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="Load Balancer Error 
Detection"><strong>Load Balancer Error 
Detection</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="Local and Global Error States"><strong>Local and Global Error 
States</strong></a></font></td></tr><tr><td><blockquote>
+</div></div>
+</div><h3 id="Load_Balancer_Error_Detection">Load Balancer Error 
Detection</h3><div class="text">
+<div class="subsection"><h4 id="Local_and_Global_Error_States">Local and 
Global Error States</h4><div class="text">
 <p>
 A load balancer worker does not only have the ability to balance load.
 It also handles stickyness and failover of requests in case of errors.
@@ -335,8 +362,8 @@ a new connection to a backend, it could
 (so no more free threads in the backend), or because the backend isn't alive 
any more.
 Depending on the details, the right state could either be local error or 
global error.
 </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="Error Escalation Time"><strong>Error Escalation 
Time</strong></a></font></td></tr><tr><td><blockquote>
+</div></div>
+<div class="subsection"><h4 id="Error_Escalation_Time">Error Escalation 
Time</h4><div class="text">
 <p>
 Until version 1.2.26 most errors were interpreted as global errors.
 Starting with version 1.2.27 many errors which were previously interpreted as 
global
@@ -368,7 +395,19 @@ So you should definitely use <b>socket_c
 with <b>ping_mode</b> and <b>ping_timeout</b> before thinking about also tuning
 <b>error_escalation_time</b>.
 </p>
-</blockquote></td></tr></table>
-</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 &copy; 1999-2018, Apache Software Foundation
-        </em></font></div></td></tr></table></body></html>
\ No newline at end of file
+</div></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&amp;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 &copy; 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

Reply via email to