Modified: tomcat/site/trunk/docs/connectors-doc/webserver_howto/apache.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/connectors-doc/webserver_howto/apache.html?rev=1848964&r1=1848963&r2=1848964&view=diff ============================================================================== --- tomcat/site/trunk/docs/connectors-doc/webserver_howto/apache.html (original) +++ tomcat/site/trunk/docs/connectors-doc/webserver_howto/apache.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 - Web Server HowTo - Apache HTTP Server 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"><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="../index.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><l i><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&emailtyp e1=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><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 - Web Server HowTo</h1><h2>Apache HTTP Server HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/apache.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) - Apache HTTP Server HowTo</title><meta name="author" content="Henri Gomez"><meta name="author" content="Gal Shachor"><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>Apache HTTP Server HowTo</h2><h3 id="Introduction">Int roduction</h3><div class="text"> <p> This document explains how to connect Tomcat to the popular open source web server, Apache HTTP Server. You can use the connection module mod_jk with any version of Apache starting with 1.3 and any version @@ -30,7 +60,7 @@ This document was originally part of <b> but has been split off for organisational reasons. </p> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Document Conventions and Assumptions"><strong>Document Conventions and Assumptions</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Document_Conventions_and_Assumptions">Document Conventions and Assumptions</h4><div class="text"> <p> ${tomcat_home} is the root directory of tomcat. Your Tomcat installation should have the following subdirectories: @@ -51,9 +81,9 @@ ${tomcat_home}\bin - Where you place web In all the examples in this document ${tomcat_home} will be <b>/var/tomcat3</b>. A <a href="../common_howto/workers.html">worker</a> is defined to be a tomcat process that accepts work from the Apache server. </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="Supported Configuration"><strong>Supported Configuration</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Supported_Configuration">Supported Configuration</h4><div class="text"> <p> The mod_jk module was developed and tested on: <ul> @@ -80,9 +110,9 @@ Tomcat 3.2 to Tomcat 8. The mod_jk module uses the AJP protocol to send requests to the Tomcat containers. The AJP version typically used is <b>ajp13</b>. </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="Who supports AJP protocols?"><strong>Who supports AJP protocols?</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Who_supports_AJP_protocols?">Who supports AJP protocols?</h4><div class="text"> <p> Tomcat supports ajp13 since Tomcat 3.2. Others servlet engines such as <b>Jetty</b> or <b>JBoss</b> also support the ajp13 protocol @@ -93,9 +123,9 @@ The <b>ajp12</b> protocol has been <b>de The <b>ajp14</b> protocol is considered experimental. </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="How does it work ?"><strong>How does it work ?</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="How_does_it_work_?">How does it work ?</h4><div class="text"> <p> In a nutshell a web server is waiting for client HTTP requests. When these requests arrive the server does whatever is needed to serve the @@ -129,9 +159,9 @@ but on different servlet container JVMs. We will cover these two cases in the advanced sections. </p> -</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="Obtaining mod_jk"><strong>Obtaining mod_jk</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="Obtaining_mod_jk">Obtaining mod_jk</h3><div class="text"> <p> mod_jk can be obtained in two formats - binary and source. Depending on the platform you are running your web server on, a binary version of mod_jk may be available. @@ -167,7 +197,7 @@ here</a> (look for JK 1.2 Binary Release operating systems for both Apache 1.3 and Apache 2.x. </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="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="Installation">Installation</h3><div class="text"> <p> mod_jk requires two entities: @@ -189,7 +219,7 @@ Apache HTTP Server, ie: /usr/lib/apache </p> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Disabling old mod_jserv"><strong>Disabling old mod_jserv</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Disabling_old_mod_jserv">Disabling old mod_jserv</h4><div class="text"> <p> If you've previously configured Apache to use <b>mod_jserv</b>, remove any <b>ApJServMount</b> directives from your httpd.conf. @@ -202,10 +232,10 @@ they are specific to <b>mod_jserv</b>. <p> The mod_jserv configuration directives are not compatible with mod_jk ! </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="Using Tomcat auto-configure"><strong>Using Tomcat auto-configure</strong></a></font></td></tr><tr><td><blockquote> -<p><font color="#ff0000">Tomcat auto-configure is deprecated and has been removed in Tomcat 7 and later.</font></p> +<div class="subsection"><h4 id="Using_Tomcat_auto-configure">Using Tomcat auto-configure</h4><div class="text"> +<warn>Tomcat auto-configure is deprecated and has been removed in Tomcat 7 and later.</warn> <p> The auto-configure works only for a single Tomcat running on the same machine where the Apache HTTP Server is running. The simplest way to configure Apache HTTP Server to use mod_jk is to turn on the Apache HTTP Server auto-configure setting @@ -213,10 +243,9 @@ in Tomcat and put the following include (make sure you replace $TOMCAT_HOME with the correct path for your Tomcat installation: </p> -<div class="example"><pre> - #To be added at the end of your httpd.conf - Include $TOMCAT_HOME/conf/jk/mod_jk.conf-auto -</pre></div> +<div class="codeBox"><pre><code># To be added at the end of your httpd.conf +Include $TOMCAT_HOME/conf/jk/mod_jk.conf-auto +</code></pre></div> <p> Note: this file may also be generated as $TOMCAT_HOME/conf/auto/mod_jk.conf @@ -231,15 +260,14 @@ element in the server.xml file as per th <b>Please note that this example is specific to Tomcat 5.x, unlike other sections of this document which also apply to previous Tomcat branches.</b> </p> -<div class="example"><pre> +<div class="codeBox"><pre><code>... +<Engine ...> ... - <Engine ...> - ... <Listener className="org.apache.jk.config.ApacheConfig" modJk="/path/to/mod_jk.so" /> - ... - </Engine> ... -</pre></div> +</Engine> +... +</code></pre></div> <p> Then restart Tomcat and mod_jk.conf should be generated. For more information on @@ -248,9 +276,9 @@ this topic, please refer to the API docu Tomcat docs website</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="Custom mod_jk configuration"><strong>Custom mod_jk configuration</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Custom_mod_jk_configuration">Custom mod_jk configuration</h4><div class="text"> <p> You should use custom configuration when: </p> @@ -269,66 +297,60 @@ to their real needs. </li> </ul> -</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="Simple configuration example"><strong>Simple configuration example</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Simple_configuration_example">Simple configuration example</h4><div class="text"> <p> Here is a simple configuration: </p> -<div class="example"><pre> - # Load mod_jk module - LoadModule jk_module modules/mod_jk.so - # Add the module (activate this lne for Apache 1.3) - # AddModule mod_jk.c - # Where to find workers.properties - JkWorkersFile /etc/httpd/conf/workers.properties - # Where to put jk shared memory - JkShmFile /var/log/httpd/mod_jk.shm - # Where to put jk logs - JkLogFile /var/log/httpd/mod_jk.log - # Set the jk log level [debug/error/info] - JkLogLevel info - # Send requests for context /examples to worker named worker1 - JkMount /examples/* worker1 -</pre></div> +<div class="codeBox"><pre><code># Load mod_jk module +LoadModule jk_module modules/mod_jk.so +# Add the module (activate this lne for Apache 1.3) +# AddModule mod_jk.c +# Where to find workers.properties +JkWorkersFile /etc/httpd/conf/workers.properties +# Where to put jk shared memory +JkShmFile /var/log/httpd/mod_jk.shm +# Where to put jk logs +JkLogFile /var/log/httpd/mod_jk.log +# Set the jk log level [debug/error/info] +JkLogLevel info +# Send requests for context /examples to worker named worker1 +JkMount /examples/* worker1 +</code></pre></div> -</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="mod_jk Directives"><strong>mod_jk Directives</strong></a></font></td></tr><tr><td><blockquote> +</div></div> +</div><h3 id="mod_jk_Directives">mod_jk Directives</h3><div class="text"> <p> We'll discuss here the mod_jk directives and details behind them </p> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Define workers"><strong>Define workers</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Define_workers">Define workers</h4><div class="text"> <p> <b>JkWorkersFile</b> specify the location where mod_jk will find the workers definitions. -<div class="example"><pre> - JkWorkersFile /etc/httpd/conf/workers.properties -</pre></div> +<div class="codeBox"><pre><code>JkWorkersFile /etc/httpd/conf/workers.properties +</code></pre></div> -<br> -<br> </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="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Logging">Logging</h4><div class="text"> <p> <b>JkLogFile</b> specify the location where mod_jk is going to place its log file. </p> -<div class="example"><pre> - JkLogFile /var/log/httpd/mod_jk.log -</pre></div> +<div class="codeBox"><pre><code>JkLogFile /var/log/httpd/mod_jk.log +</code></pre></div> <p> Since JK 1.2.3 for Apache 2.x and JK 1.2.16 for Apache 1.3 this can also be used for piped logging: </p> -<div class="example"><pre> - JkLogFile "|/usr/bin/rotatelogs /var/log/httpd/mod_jk.log 86400" -</pre></div> +<div class="codeBox"><pre><code>JkLogFile "|/usr/bin/rotatelogs /var/log/httpd/mod_jk.log 86400" +</code></pre></div> <p> <b>JkLogLevel</b> @@ -347,14 +369,11 @@ set the log level between: </li> </ul> -<div class="example"><pre> - JkLogLevel info -</pre></div> +<div class="codeBox"><pre><code>JkLogLevel info +</code></pre></div> <p> -<b class="code">info</b> should be your default selection for normal operations. -<br> -<br> +<code>info</code> should be your default selection for normal operations. </p> <p> @@ -362,14 +381,8 @@ set the log level between: See the mod_jk <a href="../reference/apache.html">Apache HTTP Server reference</a> for details. </p> -<div class="example"><pre> - JkLogStampFormat "[%y-%m-%d %H:%M:%S.%Q] " -</pre></div> - -<p> -<br> -<br> -</p> +<div class="codeBox"><pre><code>JkLogStampFormat "[%y-%m-%d %H:%M:%S.%Q] " +</code></pre></div> <p> You can log mod_jk information using the Apache standard module <b>mod_log_config</b>. @@ -378,16 +391,10 @@ Most of them are are only useful in comb See the mod_jk <a href="../reference/apache.html">Apache HTTP Server reference</a> for details. </p> -<div class="example"><pre> - LogFormat "%h %l %u %t \"%r\" %>s %b %{JK_WORKER_NAME}n %{JK_LB_FIRST_NAME}n \ - %{JK_LB_FIRST_BUSY}n %{JK_LB_LAST_NAME}n %{JK_LB_LAST_BUSY}n" mod_jk_log - CustomLog logs/access_log mod_jk_log -</pre></div> - -<p> -<br> -<br> -</p> +<div class="codeBox"><pre><code>LogFormat "%h %l %u %t \"%r\" %>s %b %{JK_WORKER_NAME}n %{JK_LB_FIRST_NAME}n \ + %{JK_LB_FIRST_BUSY}n %{JK_LB_LAST_NAME}n %{JK_LB_LAST_BUSY}n" mod_jk_log +CustomLog logs/access_log mod_jk_log +</code></pre></div> <p> You can also log a request protocol in the mod_jk log file instead of @@ -397,23 +404,15 @@ of this protocol. It gets configured and See the mod_jk <a href="../reference/apache.html">Apache HTTP Server reference</a> for details. </p> -<div class="example"><pre> - JkRequestLogFormat "%w %V %T" -</pre></div> - -<p> -<br> -<br> -</p> +<div class="codeBox"><pre><code>JkRequestLogFormat "%w %V %T" +</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="Forwarding"><strong>Forwarding</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Forwarding">Forwarding</h4><div class="text"> <p> The directive JkOptions allow you to set many forwarding options which will enable (+) or disable (-) following option. Without any leading signs, options will be enabled. -<br> -<br> </p> <p> @@ -425,8 +424,6 @@ It was "ForwardURICompatUnparsed" in ver You can turn the default off by switching on one of the other two options. You should leave this at it's default value, unless you have a very good reason to change it. -<br> -<br> </p> <p> @@ -434,10 +431,8 @@ All options are inherited from the globa Options that support enabling (plus options) and disabling (minus options), are inherited in the following way: <br> -<br> options(vhost) = plus_options(global) - minus_options(global) + plus_options(vhost) - minus_options(vhost) <br> -<br> </p> <p> @@ -446,12 +441,9 @@ will be partially reencoded after proces before forwarding to Tomcat. This will be compatible with local URL manipulation by mod_rewrite and with URL encoded session ids. -<div class="example"><pre> - JkOptions +ForwardURIProxy -</pre></div> +<div class="codeBox"><pre><code>JkOptions +ForwardURIProxy +</code></pre></div> -<br> -<br> </p> <p> @@ -461,12 +453,9 @@ It will always forward the original requ URIs with mod_rewrite and then forwarding the rewritten URI will not work. -<div class="example"><pre> - JkOptions +ForwardURICompatUnparsed -</pre></div> +<div class="codeBox"><pre><code>JkOptions +ForwardURICompatUnparsed +</code></pre></div> -<br> -<br> </p> <p> Using JkOptions <b>ForwardURICompat</b>, the forwarded URI will @@ -476,12 +465,9 @@ This is less spec compliant and is <b>no prefix JkMount. This option will allow to rewrite URIs with mod_rewrite before forwarding. -<div class="example"><pre> - JkOptions +ForwardURICompat -</pre></div> +<div class="codeBox"><pre><code>JkOptions +ForwardURICompat +</code></pre></div> -<br> -<br> </p> <p> Using JkOptions <b>ForwardURIEscaped</b>, the forwarded URI will @@ -490,20 +476,15 @@ Explicit path components like ".." will This will not work in combination with URL encoded session IDs, but it will allow to rewrite URIs with mod_rewrite before forwarding. -<div class="example"><pre> - JkOptions +ForwardURIEscaped -</pre></div> +<div class="codeBox"><pre><code>JkOptions +ForwardURIEscaped +</code></pre></div> -<br> -<br> </p> <p> JkOptions <b>RejectUnsafeURI</b> will block all URLs, which contain percent signs '%' or backslashes '\' after decoding. -<br> -<br> </p> <p> Most web apps do not use such URLs. Using the option RejectUnsafeURI, you @@ -514,12 +495,9 @@ is not set. You can also realise such a check with mod_rewrite, which is more powerful but also slightly more complicated. -<div class="example"><pre> - JkOptions +RejectUnsafeURI -</pre></div> +<div class="codeBox"><pre><code>JkOptions +RejectUnsafeURI +</code></pre></div> -<br> -<br> </p> <p> @@ -541,8 +519,6 @@ ignored if used. JkOptions <b>ForwardDirectories</b> is used in conjunction with <b>DirectoryIndex</b> directive of Apache. As such mod_dir should be available to Apache, statically or dynamically (DSO) -<br> -<br> </p> <p> @@ -554,7 +530,7 @@ local file that matches (this is done by <p> If ForwardDirectories is set to <b>false</b> (default) and Apache doesn't find any files that match, Apache will serve the content of the directory (if directive -Options specifies Indexes for that directory) or a <b class="code">403 Forbidden</b> response (if +Options specifies Indexes for that directory) or a <code>403 Forbidden</code> response (if directive Options doesn't specify Indexes for that directory). </p> @@ -571,11 +547,8 @@ ones visible only to Tomcat (i.e. if Apa that's going to get served). This is important if there is more then one type of file that Tomcat normally serves - for instance Velocity pages and JSP pages. -<div class="example"><pre> - JkOptions +ForwardDirectories -</pre></div> -<br> -<br> +<div class="codeBox"><pre><code>JkOptions +ForwardDirectories +</code></pre></div> </p> <p> @@ -584,11 +557,8 @@ of the Apache HTTP Server instead of rem Tomcat remote address valve for allowing connections only from configured Apache servers. -<div class="example"><pre> - JkOptions +ForwardLocalAddress -</pre></div> -<br> -<br> +<div class="codeBox"><pre><code>JkOptions +ForwardLocalAddress +</code></pre></div> </p> <p> @@ -596,13 +566,10 @@ Setting JkOptions <b>ForwardPhysicalAddr physical peer TCP 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. -<div class="example"><pre> - JkOptions +ForwardPhysicalAddress -</pre></div> -<br> -<br> +<div class="codeBox"><pre><code>JkOptions +ForwardPhysicalAddress +</code></pre></div> </p> <p> @@ -612,24 +579,18 @@ a strong performance penalty for Apache more often than would normally be required (ie: at the end of each response). -<div class="example"><pre> - JkOptions +FlushPackets -</pre></div> +<div class="codeBox"><pre><code>JkOptions +FlushPackets +</code></pre></div> -<br> -<br> </p> <p> JkOptions <b>FlushHeader</b>, you ask mod_jk to flush Apache's connection buffer after the response headers have been received from Tomcat. -<div class="example"><pre> - JkOptions +FlushHeader -</pre></div> +<div class="codeBox"><pre><code>JkOptions +FlushHeader +</code></pre></div> -<br> -<br> </p> <p> @@ -645,12 +606,9 @@ If a firewall between Apache and Tomcat try to use the worker attribute socket_keepalive in combination with an appropriate TCP keepalive value in your OS. -<div class="example"><pre> - JkOptions +DisableReuse -</pre></div> +<div class="codeBox"><pre><code>JkOptions +DisableReuse +</code></pre></div> -<br> -<br> </p> <p> @@ -658,31 +616,25 @@ JkOptions <b>ForwardKeySize</b>, you ask required by Servlet API 2.3. This flag shouldn't be set when servlet engine is Tomcat 3.2.x (off by default). -<div class="example"><pre> - JkOptions +ForwardKeySize -</pre></div> +<div class="codeBox"><pre><code>JkOptions +ForwardKeySize +</code></pre></div> -<br> -<br> </p> <p> JkOptions <b>ForwardSSLCertChain</b>, you ask mod_jk, when using ajp13, to forward SSL certificate chain (off by default). -Mod_jk only passes the <b class="code">SSL_CLIENT_CERT</b> to the AJP connector. This is not a +Mod_jk only passes the <code>SSL_CLIENT_CERT</code> to the AJP connector. This is not a problem with self-signed certificates or certificates directly signed by the root CA certificate. However, there's a large number of certificates signed by an intermediate CA certificate, where this is a significant problem: A servlet will not have the possibility to validate the client certificate on its own. The -bug would be fixed by passing on the <b class="code">SSL_CLIENT_CERT_CHAIN</b> to Tomcat via the AJP connector. +bug would be fixed by passing on the <code>SSL_CLIENT_CERT_CHAIN</code> to Tomcat via the AJP connector. <br> This directive exists only since version 1.2.22. -<div class="example"><pre> - JkOptions +ForwardSSLCertChain -</pre></div> +<div class="codeBox"><pre><code>JkOptions +ForwardSSLCertChain +</code></pre></div> -<br> -<br> </p> <p> @@ -697,19 +649,15 @@ via request.getAttribute(attributeName). Note that the variables send via JkEnvVar will not be listed in request.getAttributeNames(). <br> -<br> The variables are inherited from the global server to virtual hosts. -<div class="example"><pre> - JkEnvVar SSL_CLIENT_V_START undefined -</pre></div> -<br> -<br> +<div class="codeBox"><pre><code>JkEnvVar SSL_CLIENT_V_START undefined +</code></pre></div> </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="Assigning URLs to Tomcat"><strong>Assigning URLs to Tomcat</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Assigning_URLs_to_Tomcat">Assigning URLs to Tomcat</h4><div class="text"> <p> If you have created a custom or local version of mod_jk.conf-local as noted above, you can change settings such as the workers or URL prefix. @@ -720,23 +668,22 @@ you can change settings such as the work In general the structure of a JkMount directive is: </p> -<div class="example"><pre> JkMount [URL prefix] [Worker name]</pre></div> +<div class="codeBox"><pre><code>JkMount [URL prefix] [Worker name]</code></pre></div> -<div class="example"><pre> - # send all requests ending in .jsp to worker1 - JkMount /*.jsp worker1 - # send all requests ending /servlet to worker1 - JkMount /*/servlet/ worker1 - # send all requests jsp requests to files located in /otherworker will go worker2 - JkMount /otherworker/*.jsp worker2 -</pre></div> +<div class="codeBox"><pre><code># send all requests ending in .jsp to worker1 +JkMount /*.jsp worker1 +# send all requests ending /servlet to worker1 +JkMount /*/servlet/ worker1 +# send all requests jsp requests to files located in /otherworker will go worker2 +JkMount /otherworker/*.jsp worker2 +</code></pre></div> <p> You can use the JkMount directive at the top level or inside <VirtualHost> sections of your httpd.conf file. </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="Configuring Apache to serve static web application files"><strong>Configuring Apache to serve static web application files</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Configuring_Apache_to_serve_static_web_application_files">Configuring Apache to serve static web application files</h4><div class="text"> <p> If the Tomcat Host appBase (webapps) directory is accessible by the Apache HTTP Server, Apache can be configured to serve web application context directory static files instead @@ -755,16 +702,15 @@ application's web.xml. document space for a VirtualHost: </p> -<div class="example"><pre> - # Static files in the examples webapp are served by Apache - Alias /examples /vat/tomcat3/webapps/examples - # All requests go to worker1 by default - JkMount /* worker1 - # Serve html, jpg and gif using Apache - JkUnMount /*.html worker1 - JkUnMount /*.jpg worker1 - JkUnMount /*.gif worker1 -</pre></div> +<div class="codeBox"><pre><code># Static files in the examples webapp are served by Apache +Alias /examples /vat/tomcat3/webapps/examples +# All requests go to worker1 by default +JkMount /* worker1 +# Serve html, jpg and gif using Apache +JkUnMount /*.html worker1 +JkUnMount /*.jpg worker1 +JkUnMount /*.gif worker1 +</code></pre></div> <p> Starting with mod_jk 1.2.6 for Apache 2.x and 1.2.19 for Apache 1.3, it's possible to exclude some URL/URI from @@ -776,28 +722,27 @@ You could use <b>no-jk</b> env var to fi directive when jk and alias/userdir URLs matches. </p> -<div class="example"><pre> - # All URL goes to tomcat except the one containing /home - <VirtualHost *:80> - ServerName testxxx.mysys - DocumentRoot /www/testxxx/htdocs - - # Use SetEnvIf to set no-jk when /home/ is encountered - SetEnvIf Request_URI "/home/*" no-jk - - # Now /home will goes to /home/dataxxx/ - Alias /home /home/dataxxx/ - - <Directory "/home/dataxxx"> - Options Indexes MultiViews - AllowOverride None - Require all granted - </Directory> +<div class="codeBox"><pre><code># All URL goes to tomcat except the one containing /home +<VirtualHost *:80> + ServerName testxxx.mysys + DocumentRoot /www/testxxx/htdocs + +# Use SetEnvIf to set no-jk when /home/ is encountered + SetEnvIf Request_URI "/home/*" no-jk + +# Now /home will goes to /home/dataxxx/ + Alias /home /home/dataxxx/ + + <Directory "/home/dataxxx"> + Options Indexes MultiViews + AllowOverride None + Require all granted + </Directory> - JkMount /* myssys-xxx + JkMount /* myssys-xxx - </VirtualHost> -</pre></div> +</VirtualHost> +</code></pre></div> <p> @@ -808,24 +753,23 @@ into Apache's document space. <p> Attempts to access the WEB-INF or META-INF directories within a web application context or a Web Archive *.war within the Tomcat Host appBase (webapps) directory will fail with an -<b class="code">HTTP 403, Access Forbidden</b> +<code>HTTP 403, Access Forbidden</code> </p> -<div class="example"><pre> - # Static files in all Tomcat webapp context directories are served by Apache - JkAutoAlias /var/tomcat3/webapps - - # All requests go to worker1 by default - JkMount /* ajp13 - # Serve html, jpg and gif using Apache - JkUnMount /*.html ajp13 - JkUnMount /*.jpg ajp13 - JkUnMount /*.gif ajp13 -</pre></div> +<div class="codeBox"><pre><code># Static files in all Tomcat webapp context directories are served by Apache +JkAutoAlias /var/tomcat3/webapps + +# All requests go to worker1 by default +JkMount /* ajp13 +# Serve html, jpg and gif using Apache +JkUnMount /*.html ajp13 +JkUnMount /*.jpg ajp13 +JkUnMount /*.gif ajp13 +</code></pre></div> <p> If you encoded all your URLs to contain the session id -(<b class="code">;jsessionid=...</b>), and you later decide, you want to +(<code>;jsessionid=...</code>), and you later decide, you want to move part of the content to Apache, you can tell mod_jk to strip off all session ids from URLs for those requests, that do not get forwarded via mod_jk. @@ -837,12 +781,12 @@ It can be enabled individually for virtu value is Off. </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="Building mod_jk on Unix"><strong>Building mod_jk on Unix</strong></a></font></td></tr><tr><td><blockquote> +</div></div> +</div><h3 id="Building_mod_jk_on_Unix">Building mod_jk on Unix</h3><div class="text"> <p> The mod_jk build use the widely used configure system. </p> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Prepare your mod_jk configure from subversion"><strong>Prepare your mod_jk configure from subversion</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Prepare_your_mod_jk_configure_from_subversion">Prepare your mod_jk configure from subversion</h4><div class="text"> In case you get source from subversion, ie without an existing configure script, you should have autoconf for configuration and installation. <p> @@ -857,22 +801,25 @@ they are only required for developers. <p> To create the configure script just type: -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./buildconf.sh</b></nobr></code><br></td></tr></table></div></p> +<screen> +<type>./buildconf.sh</type> +</screen> </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="Using configure to build mod_jk"><strong>Using configure to build mod_jk</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Using_configure_to_build_mod_jk">Using configure to build mod_jk</h4><div class="text"> <p>Here's how to use configure to prepare mod_jk for building, just type: -<div class="example"><pre> -./configure [autoconf arguments] [mod_jk arguments] -</pre></div> +<div class="codeBox"><pre><code>./configure [autoconf arguments] [mod_jk arguments] +</code></pre></div> </p> <p> You could set <b>CFLAGS</b> and <b>LDFLAGS</b> to add some platform specifics: </p> -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">LDFLAGS=-lc ./configure -with-apxs=/home2/local/apache/bin/apxs</b></nobr></code><br></td></tr></table></div></p> +<screen> +<type>LDFLAGS=-lc ./configure -with-apxs=/home2/local/apache/bin/apxs</type> +</screen> <p> If you want to build mod_jk for different versions of the Apache HTTP Server, like 1.3 or 2.x, @@ -901,9 +848,9 @@ Start over with the apxs location for yo </ul> </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="configure arguments"><strong>configure arguments</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="configure_arguments">configure arguments</h4><div class="text"> <p> <table> <tr valign="top"><th>Apache related parameters</th><th></th></tr> @@ -963,15 +910,24 @@ However those locks does not work on NFS </table> </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="Examples of configure use"><strong>Examples of configure use</strong></a></font></td></tr><tr><td><blockquote> +<div class="subsection"><h4 id="Examples_of_configure_use">Examples of configure use</h4><div class="text"> -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Apache 1.3 and 2.x build</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/sbin/apxs</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cp ./apache-1.3/mod_jk.so /usr/lib/apache</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make clean</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/sbin/apxs2</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cp ./apache-2.0/mod_jk.so /usr/lib /apache2</b></nobr></code><br></td></tr></table></div></p> +<screen> +<note>Apache 1.3 and 2.x build</note> +<type>./configure --with-apxs=/usr/sbin/apxs</type><br> +<type>make</type><br> +<type>cp ./apache-1.3/mod_jk.so /usr/lib/apache</type><br> +<type>make clean</type><br> +<type>./configure --with-apxs=/usr/sbin/apxs2</type><br> +<type>make</type><br> +<type>cp ./apache-2.0/mod_jk.so /usr/lib/apache2</type><br> +</screen> -</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="Building mod_jk for Apache on Windows"><strong>Building mod_jk for Apache on Windows</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="Building_mod_jk_for_Apache_on_Windows">Building mod_jk for Apache on Windows</h3><div class="text"> <p> The module was developed using Microsoft Visual C++, so having Visual Studio installed is a prerequisite if you want to perform your own build.</p> @@ -999,7 +955,25 @@ Set your path to the Apache web server d environment. </li> </ul> -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Set up 32 or 64 Bit build environment</div><code><nobr><em class="screen">c:\></em><b class="screen">setenv /Release /X86</b></nobr></code><br><div class="screen">or (not available for IDE build)</div><code><nobr><em class="screen">c:\></em><b class="screen">setenv /Release /X64</b></nobr></code><br><div class="screen">Download tomcat-connectors-xxx-src.zip from</div><div class="screen">https://tomcat.apache.org/download-connectors.cgi</div><div class="screen">and unpack it</div><code><nobr><em class="screen">c:\></em><b class="screen">unzip tomcat-connectors-xxx-src.zip</b></nobr></code><br><div class="screen">Change directory to the mod_jk source directory.</div><div class="screen">To build mod_jk for the Apache HTTP server 2.0, 2.2 or 2.4,</div><div class="screen">use the "apache-2.0" directory, for the old</div><div class="screen">Apache HTTP server 1.3, the "apache-1.3" directory.</div><code><nobr><em class="screen">c:\></em><b class="screen">cd tomcat-connectors-xxx-src\native\apache-2.0</b></nobr></code><br><div class="screen">Set the environment variable "APACHE1_HOME" resp.</div><div class="screen">"APACHE2_HOME" resp. "APACHE22_HOME" resp. "APACHE24_HOME"</div><div class="screen">to the installation path of your Apache web server.</div><code><nobr><em class="screen">c:\></em><b class="screen">set APACHE24_HOME=D:\software\Apache\httpd-2.4.16</b></nobr></code><br></td></tr></table></div></p> +<screen> +<note>Set up 32 or 64 Bit build environment</note> +<typedos>setenv /Release /X86</typedos> +<note>or (not available for IDE build)</note> +<typedos>setenv /Release /X64</typedos> +<note>Download tomcat-connectors-xxx-src.zip from</note> +<note>https://tomcat.apache.org/download-connectors.cgi</note> +<note>and unpack it</note> +<typedos>unzip tomcat-connectors-xxx-src.zip</typedos> +<note>Change directory to the mod_jk source directory.</note> +<note>To build mod_jk for the Apache HTTP server 2.0, 2.2 or 2.4,</note> +<note>use the "apache-2.0" directory, for the old</note> +<note>Apache HTTP server 1.3, the "apache-1.3" directory.</note> +<typedos>cd tomcat-connectors-xxx-src\native\apache-2.0</typedos> +<note>Set the environment variable "APACHE1_HOME" resp.</note> +<note>"APACHE2_HOME" resp. "APACHE22_HOME" resp. "APACHE24_HOME"</note> +<note>to the installation path of your Apache web server.</note> +<typedos>set APACHE24_HOME=D:\software\Apache\httpd-2.4.16</typedos> +</screen> </p> <p> The steps for an IDE build are then: @@ -1053,7 +1027,7 @@ of your Apache HTTP server (resp. the li For Apache HTTP Server 1.3, ApacheCore.lib is expected to exist before linking mod_jk will succeed. </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="Building mod_jk for Apache on System I - i5/OS (OS400)"><strong>Building mod_jk for Apache on System I - i5/OS (OS400)</strong></a></font></td></tr><tr><td><blockquote> +</div><h3 id="Building_mod_jk_for_Apache_on_System_I_-_i5/OS_(OS400)">Building mod_jk for Apache on System I - i5/OS (OS400)</h3><div class="text"> <p> Since OS400 V4R5, System I (AS/400) has used Apache 2.0 as their primary web server, replacing the old IBM web server. @@ -1103,29 +1077,81 @@ Send the whole jk source directory to Sy Then go to the System I command line: </li> </ul> -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Create mod_jk library</div><code><nobr><em class="screen">===></em><b class="screen">CRTLIB MOD_JK TEXT(‘Apache mod'jk tomcat connector module')</b></nobr></code><br><div class="screen">Create service program source file</div><code><nobr><em class="screen">===></em><b class="screen">CRTSRCPF MOD_JK/QSRVSRC TEXT(‘Service program source file’)</b></nobr></code><br><div class="screen">Create the CL build program source file</div><code><nobr><em class="screen">===></em><b class="screen">CRTSRCPF FILE(MOD_JK/QCLSRC) TEXT(‘Build program source file’)</b></nobr></code><br><div class="screen">Edit the service program source file</div><code><nobr><em class="screen">===></em><b class="screen">STRSEU MOD_JK/QSRVSRC MOD_JK</b></nobr></code><br></td></tr></table></div></p> +<screen> +<note>Create mod_jk library</note> +<type5250>CRTLIB MOD_JK TEXT(‘Apache mod'jk tomcat connector module')</type5250> +<note>Create service program source file</note> +<type5250>CRTSRCPF MOD_JK/QSRVSRC TEXT(‘Service program source file’)</type5250> +<note>Create the CL build program source file</note> +<type5250>CRTSRCPF FILE(MOD_JK/QCLSRC) TEXT(‘Build program source file’)</type5250> +<note>Edit the service program source file</note> +<type5250>STRSEU MOD_JK/QSRVSRC MOD_JK</type5250> +</screen> <p> In the edited file, specify that only jk_module should be exported: -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> Columns . . : 1 71 Edit MOD_JK/QSRVSRC </div><div class="screen"> SEU==> MOD_JK </div><div class="screen"> *************** Beginning of data ************************************* </div><div class="screen">0001.00 STRPGMEXP PGMLVL(*CURRENT) </div><div class="screen">0002.00 EXPORT SYMBOL("jk_module") </div><div class="screen">0003.00 ENDPGMEXP </div><div class="screen"> ****************** End of data **************************************** </div></td></tr></table></div></p> +<screen> +<note> Columns . . : 1 71 Edit MOD_JK/QSRVSRC </note> +<note> SEU==> MOD_JK </note> +<note> *************** Beginning of data ************************************* </note> +<note>0001.00 STRPGMEXP PGMLVL(*CURRENT) </note> +<note>0002.00 EXPORT SYMBOL("jk_module") </note> +<note>0003.00 ENDPGMEXP </note> +<note> ****************** End of data **************************************** </note> +</screen> </p> <p> You could start to build all the modules of mod_jk (cases for V5R4 or previous releases): </p> -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Copy the CL build program source for i5/OS before V5R4 from IFS</div><code><nobr><em class="screen">===></em><b class="screen">CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk.qclsrc') +</b></nobr></code><br><div class="screen">TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK.MBR') MBROPT(*REPLACE)</div><div class="screen">Build the CL build program</div><code><nobr><em class="screen">===></em><b class="screen">CRTCLPGM PGM(MOD_JK/BLDJK) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program')</b></nobr></code><br><div class="screen">Launch the build</div><code><nobr><em class="screen">===></em><b class="screen">CALL MOD_JK/BLDJK</b></nobr></code><br><div class="screen">If the build if successfull, copy the new mod_jk module</div><code><nobr><em class="screen">===></em><b class="screen">C RTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</b></nobr></code><br></td></tr></table></div></p> -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Copy the CL build program source for i5/OS V5R4 from IFS</div><code><nobr><em class="screen">===></em><b class="screen">CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk54.qclsrc') +</b></nobr></code><br><div class="screen">TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK54.MBR') MBROPT(*REPLACE)</div><div class="screen">Build the CL build program for i5/OS V5R4</div><code><nobr><em class="screen">===></em><b class="screen">CRTCLPGM PGM(MOD_JK/BLDJK54) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program') TGTRLS(*CURRENT)</b></nobr></code><br><div class="screen">Launch the build for i5/OS V5R4</div><code><nobr><em class="screen">===></em><b class="screen">CALL MOD_JK/BLDJK54</b></nobr></code><br><div class="screen">If the build if successfull, copy the new mod_jk module</div><code><nobr><e m class="screen">===></em><b class="screen">CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</b></nobr></code><br></td></tr></table></div></p> +<screen> +<note>Copy the CL build program source for i5/OS before V5R4 from IFS</note> +<type5250>CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk.qclsrc') +</type5250> +<note>TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK.MBR') MBROPT(*REPLACE)</note> +<note>Build the CL build program</note> +<type5250>CRTCLPGM PGM(MOD_JK/BLDJK) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program')</type5250> +<note>Launch the build</note> +<type5250>CALL MOD_JK/BLDJK</type5250><br> +<note>If the build if successfull, copy the new mod_jk module</note> +<type5250>CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</type5250> +</screen> +<screen> +<note>Copy the CL build program source for i5/OS V5R4 from IFS</note> +<type5250>CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk54.qclsrc') +</type5250> +<note>TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK54.MBR') MBROPT(*REPLACE)</note> +<note>Build the CL build program for i5/OS V5R4</note> +<type5250>CRTCLPGM PGM(MOD_JK/BLDJK54) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program') TGTRLS(*CURRENT)</type5250> +<note>Launch the build for i5/OS V5R4</note> +<type5250>CALL MOD_JK/BLDJK54</type5250><br> +<note>If the build if successfull, copy the new mod_jk module</note> +<type5250>CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</type5250> +</screen> <p> Next, you should restart your Apache 2.0 instance and enjoy this piece of OpenSource on System I. </p> -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">ENDTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</div><div class="screen">STRTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</div></td></tr></table></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="Building mod_jk for Apache on MacOS/X"><strong>Building mod_jk for Apache on MacOS/X</strong></a></font></td></tr><tr><td><blockquote> +<screen> +<note>ENDTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</note> +<note>STRTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</note> +</screen> +</div><h3 id="Building_mod_jk_for_Apache_on_MacOS/X">Building mod_jk for Apache on MacOS/X</h3><div class="text"> <p> Mac OS X (10.2.x) build notes: </p> <p> Assuming that you are root: </p> -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">For Apache 1.3:</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/sbin/apxs</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd apache-1.3</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make -f Makefile.apxs</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cp mod_jk.so /etc/libexec/httpd</b></nobr></code><br><div class="screen">For Apache 2.x:</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/local/apache2/bin/apxs</b></nobr></code><br><div class="screen">(you should point to the directory where you installed Apache 2.x)</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd apache-2.0</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make -f Makefile.apxs install</b></nobr></code><br></td></tr></table></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="Getting mod_jk linked statically with Apache"><strong>Getting mod_jk linked statically with Apache</strong></a></font></td></tr><tr><td><blockquote> +<screen> +<note>For Apache 1.3:</note> +<type>./configure --with-apxs=/usr/sbin/apxs</type> +<type>cd apache-1.3</type> +<type>make -f Makefile.apxs</type> +<type>cp mod_jk.so /etc/libexec/httpd</type> + +<note>For Apache 2.x:</note> +<type>./configure --with-apxs=/usr/local/apache2/bin/apxs</type> +<note>(you should point to the directory where you installed Apache 2.x)</note> +<type>cd apache-2.0</type> +<type>make -f Makefile.apxs install</type> +</screen> +</div><h3 id="Getting_mod_jk_linked_statically_with_Apache">Getting mod_jk linked statically with Apache</h3><div class="text"> <p> mod_jk allows to install mod_jk in the Apache source tree to get a statically linked mod_jk. Having mod_jk in the Apache executable brings some small performance @@ -1135,27 +1161,69 @@ The option --with-apache works both for The examples below show how to get mod_jk in the Apache process. </p> -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation for Apache-2.x"><strong>Installation for Apache-2.x</strong></a></font></td></tr><tr><td><blockquote> -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> /home/apache24/httpd-2.4.12 is the directory where the Apache HTTP Server sources -are located. </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apache=/home/apache24/httpd-2.4.12</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><div class="screen">Install the mod_jk library and other files in -/home/apache24/httpd-2.4.12/modules: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br><div class="screen"> It is not possible to configure Apache directly because the config.m4 of mod_jk must -be added to the configure of httpd-2.x. </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd /home/apache24/httpd-2.4.12</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">sh buildconf</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">configure ... --with-mod_jk</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br></td></tr></table></div></p> +<div class="subsection"><h4 id="Installation_for_Apache-2.x">Installation for Apache-2.x</h4><div class="text"> +<screen> +<note> /home/apache24/httpd-2.4.12 is the directory where the Apache HTTP Server sources +are located. </note> +<type>./configure --with-apache=/home/apache24/httpd-2.4.12</type><br> +<type>make</type><br> +<note>Install the mod_jk library and other files in +/home/apache24/httpd-2.4.12/modules: </note> +<type>make install</type><br> +<note> It is not possible to configure Apache directly because the config.m4 of mod_jk must +be added to the configure of httpd-2.x. </note> +<type>cd /home/apache24/httpd-2.4.12</type> +<type>sh buildconf</type> +<type>configure ... --with-mod_jk</type> +<type>make</type> +<type>make install</type><br> +</screen> <p> The enable-jk=share and enable-jk=static are not supported. --with-mod_jk only allow static linking of mod_jk. </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="Installation for Apache-1.3"><strong>Installation for Apache-1.3</strong></a></font></td></tr><tr><td><blockquote> -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> /home/apache/apache_1.3.27 is the directory where the apache-1.3 sources -are located. </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apache=/home/apache/apache_1.3.27</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><div class="screen">Install the libjk library, mod_jk.c, includes and other files in -/home/apache/apache_1.3.27/src/modules/jk: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br><div class="screen"> Configure in the Apache sources: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd /home/apache/apache_1.3.27</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">configure ... --enable-module=dir --disable-shared=dir \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --activate-module=src/modules/jk/libjk.a \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --disable-shared=jk</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br></td></tr></table></div></p> +<div class="subsection"><h4 id="Installation_for_Apache-1.3">Installation for Apache-1.3</h4><div class="text"> +<screen> +<note> /home/apache/apache_1.3.27 is the directory where the apache-1.3 sources +are located. </note> +<type>./configure --with-apache=/home/apache/apache_1.3.27</type><br> +<type>make</type><br> +<note>Install the libjk library, mod_jk.c, includes and other files in +/home/apache/apache_1.3.27/src/modules/jk: </note> +<type>make install</type><br> +<note> Configure in the Apache sources: </note> +<type>cd /home/apache/apache_1.3.27</type> +<type>configure ... --enable-module=dir --disable-shared=dir \</type> +<typenext> --activate-module=src/modules/jk/libjk.a \</typenext> +<typenext> --disable-shared=jk</typenext> +<type>make</type> +<type>make install</type><br> +</screen> <p> The --enable-shared=jk is also working and builds a dso file. </p> -<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> Just change the configure in the Apache sources: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">configure ... --enable-module=dir --enable-shared=dir \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --activate-module=src/modules/jk/libjk.a \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --enable-shared=jk</b></nobr></code><br></td></tr></table></div></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 © 1999-2018, Apache Software Foundation - </em></font></div></td></tr></table></body></html> \ No newline at end of file +<screen> +<note> Just change the configure in the Apache sources: </note> +<type>configure ... --enable-module=dir --enable-shared=dir \</type> +<typenext> --activate-module=src/modules/jk/libjk.a \</typenext> +<typenext> --enable-shared=jk</typenext> +</screen> +</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&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