summaryrefslogtreecommitdiffstats
path: root/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/apache.html
diff options
context:
space:
mode:
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/apache.html')
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/apache.html1124
1 files changed, 0 insertions, 1124 deletions
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/apache.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/apache.html
deleted file mode 100644
index a60cc43c..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/apache.html
+++ /dev/null
@@ -1,1124 +0,0 @@
-<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Webserver HowTo - Apache HTTP Server HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shachor@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 Logo" 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>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</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&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><p><strong>News</strong></p><ul><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 Connector - Webserver 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>
-<p>
-This document explains how to connect Tomcat to the popular open source web server, Apache httpd.
-There is actually three versions of Apache HTTP Server, 1.3, 2.0 and 2.2 and all can be used with mod_jk,
-the Tomcat redirector module.
-</p>
-
-<p>
-It is recommended that you also read the
-<a href="../generic_howto/workers.html">Workers HowTo</a> document
-to learn how to setup the working entities between your web server and Tomcat Engines.
-For more detailed configuration information consult the Reference Guide for
-<a href="../reference/worker.html">workers.properties</a>,
-<a href="../reference/uriworkermap.html">uriworkermap</a>
-and <a href="../reference/apache.html">Apache</a>.
-</p>
-
-<p><b>Waring: If Apache HTTP Server and Tomcat are configured to serve content from
-the same filing system location then care must be taken to ensure that httpd is
-not able to serve inappropriate content such as the contents of the WEB-INF
-directory or JSP source code.</b> This could occur if the httpd DocumentRoot
-overlaps with a Tomcat Host's appBase or the docBase of any Context. It could
-also occur when using the httpd Alias directive with a Tomcat Host's appBase or
-the docBase of any Context.
-</p>
-
-<p>
-This document was originally part of <b>Tomcat: A Minimalistic User's Guide</b> written by Gal Shachor,
-but has been split off for organisational reasons.
-</p>
-
-<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>
-<p>
-${tomcat_home} is the root directory of tomcat.
-Your Tomcat installation should have the following subdirectories:
-
-<ul>
-<li>
-${tomcat_home}\conf - Where you can place various configuration files
-</li>
-<li>
-${tomcat_home}\webapps - Containing example applications
-</li>
-<li>
-${tomcat_home}\bin - Where you place web server plugins
-</li>
-</ul>
-</p>
-<p>
-In all the examples in this document ${tomcat_home} will be <b>/var/tomcat3</b>.
-A <a href="../generic_howto/workers.html">worker</a> is defined to be a tomcat process that accepts work from the Apache server.
-</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="Supported Configuration"><strong>Supported Configuration</strong></a></font></td></tr><tr><td><blockquote>
-<p>
-The mod_jk module was developed and tested on:
-<ul>
-<li>
-Linux, FreeBSD, AIX, HP-UX, MacOS X, Solaris and should works on major Unixes platforms
-supporting Apache 1.3 and/or 2.0/2.2
-</li>
-<li>
-WinNT4.0-i386 SP4/SP5/SP6a (should be able to work with other service packs), Win2K and WinXP and Win98
-</li>
-<li>
-Cygwin (until you have an apache server and autoconf/automake support tools)
-</li>
-<li>
-Netware
-</li>
-<li>
-i5/OS V5R4 (System I) with Apache HTTP Server 2.0.58. Be sure to have the latest Apache PTF installed.
-</li>
-<li>
-Tomcat 3.2.x, Tomcat 3.3.x, Tomcat 4.0.x, Tomcat 4.1.x, Tomcat 5.0.x, Tomcat 5.5.x and Tomcat 6.
-</li>
-</ul>
-</p>
-
-<p>
-The redirector uses <b>ajp12</b> and <b>ajp13</b> to send requests to the Tomcat containers. There is also an option to use Tomcat in process,
-more about the in-process mode can be found in the in process howto.
-</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="Who support ajp protocols ?"><strong>Who support ajp protocols ?</strong></a></font></td></tr><tr><td><blockquote>
-<p>
-The ajp12 protocol is only available in Tomcat 3.2.x and 3.3.x.
-</p>
-
-<p>
-The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
-<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.x, 5 and 5.5 and Tomcat 6.
-</p>
-
-<p>
-Of course Tomcat 3.2.x and 3.3.x also support ajp13 protocol.
-</p>
-
-<p>
-Others servlet engines such as <b>jetty</b> have support for ajp13 protocol
-</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="How does it work ?"><strong>How does it work ?</strong></a></font></td></tr><tr><td><blockquote>
-<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
-requests by providing the necessary content.
-</p>
-
-<p>
-Adding a servlet container may somewhat change this behaviour.
-Now the web server needs also to perform the following:
-</p>
-
-<ul>
-<li>
-Load the servlet container adaptor library and initialise it (prior to serving requests).
-</li>
-<li>
-When a request arrives, it needs to check and see if a certain request belongs to a servlet,
-if so it needs to let the adaptor take the request and handle it.
-</li>
-</ul>
-
-<p>
-The adaptor on the other hand needs to know what requests it is going to serve,
-usually based on some pattern in the request URL, and to where to direct these requests.
-</p>
-
-<p>
-Things are even more complex when the user wants to set a configuration that uses virtual hosts,
-or when they want multiple developers to work on the same web server
-but on different servlet container JVMs.
-We will cover these two cases in the advanced sections.
-</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="Obtaining mod_jk"><strong>Obtaining mod_jk</strong></a></font></td></tr><tr><td><blockquote>
-<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.
-</p>
-
-<p>
-It is recommended to use the binary version if one is available.
-If the binary is not available, follow the instructions for building mod_jk from source.
-The mod_jk source can be downloaded from a mirror
-<a href="http://tomcat.apache.org/download-connectors.cgi">
-here</a>
-</p>
-
-<p>
-The binaries for mod_jk are now available for several platforms.
-The binaries are located in subdirectories by platform.
-</p>
-
-<p>
-For some platforms, such as Windows, this is the typical way of obtaining mod_jk
-since most Windows systems do not have C compilers.
-</p>
-
-<p>
-For others, the binary distribution of mod_jk offers simpler installation.
-</p>
-
-<p>
-For example JK 1.2.x can be downloaded from a mirror
-<a href="http://tomcat.apache.org/download-connectors.cgi">
-here</a> (look for JK 1.2 Binary Releases). The "JK 1.2 Binary Releases" link contains binary version for a variety of
-operating systems for both Apache 1.3 and Apache 2.
-</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>
-<p>
-mod_jk requires two entities:
-
-<ul>
-<li>
-<b>mod_jk.xxx</b> - The Apache HTTP Server module, depending on your operating system, it will be mod_jk.so, mod_jk.nlm or
-or MOD_JK.SRVPGM (see the build section).
-</li>
-<li>
-<b>workers.properties</b> - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
-A sample workers.properties can be found under the conf directory in the source download.
-</li>
-</ul>
-</p>
-
-<p>
-Also as with other Apache HTTP Server modules, mod_jk should be first installed on the modules directory of your
-Apache webserver, ie : /usr/lib/apache and you should update your <b>httpd.conf</b> file.
-</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>
-<p>
-If you've previously configured Apache to use <b>mod_jserv</b>, remove any <b>ApJServMount</b> directives
-from your httpd.conf.
-</p>
-
-<p>If you're including <b>tomcat-apache.conf</b> or <b>tomcat.conf</b>, you'll want to remove them as well -
-they are specific to <b>mod_jserv</b>.
-</p>
-
-<p>
-The mod_jserv configuration directives are not compatible with mod_jk !
-</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="Using Tomcat auto-configure"><strong>Using Tomcat auto-configure</strong></a></font></td></tr><tr><td><blockquote>
-<p>
-The auto-configure works only for a single Tomcat running on the same machine where 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
-in Tomcat and put the following include directive at the end of your Apache httpd.conf file
-(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>
-
-<p>
-Note: this file may also be generated as $TOMCAT_HOME/conf/auto/mod_jk.conf
-</p>
-
-<p>
-This will tell Apache HTTP Server to use directives in the <b>mod_jk.conf-auto</b> file in
-the Apache configuration. This file is created by enabling the Apache
-auto-configuration by creating your workers.properties file at
-$TOMCAT_HOME/conf/jk/workers.properties and adding the listener to the Engine
-element in the server.xml file as per the following example.
-<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>
- ...
- &lt;Engine ...&gt;
- ...
- &lt;Listener className="org.apache.jk.config.ApacheConfig" modJk="/path/to/mod_jk.so" /&gt;
- ...
- &lt;/Engine&gt;
- ...
-</pre></div>
-
-<p>
-Then restart Tomcat and mod_jk.conf should be generated. For more information on
-this topic, please refer to the API documentation at the
-<a href="http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/jk/config/ApacheConfig.html">
-Tomcat docs website</a>.
-</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="Custom mod_jk configuration"><strong>Custom mod_jk configuration</strong></a></font></td></tr><tr><td><blockquote>
-<p>
-You should use custom configuration when :
-</p>
-<ul>
-<li>
-You couldn't use <b>mod_jk.conf-auto</b> since Tomcat engine isn't on the same machine that your Apache web server,
-ie when you have an Apache in front of a Tomcat Farm.
-</li>
-<li>
-Another case for custom configuration is when your Apache is in front of many different Tomcat engines,
-each one having it's own configuration, a general case in ISP hosting
-</li>
-<li>
-Also all Apache webmaster will retain custom configuration to be able to tune the settings
-to their real needs.
-</li>
-</ul>
-
-</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="Simple configuration example"><strong>Simple configuration example</strong></a></font></td></tr><tr><td><blockquote>
-<p>
-Here is a simple configuration:
-</p>
-
-<div class="example"><pre>
- # Load mod_jk module
- LoadModule jk_module libexec/mod_jk.so
- # Declare the module for &lt;IfModule directive&gt; (remove this line on Apache 2.0.x)
- 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
- # Select the timestamp log format
- JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
- # Send servlet for context /examples to worker named worker1
- JkMount /examples/servlet/* worker1
- # Send JSPs for context /examples to worker named worker1
- JkMount /examples/*.jsp worker1
-</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>
-<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>
-<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>
-
-<br>
-<br>
-</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="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
-<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>
-
-<p>
-Since JK 1.2.3 for Apache 2.0/2.2 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>
-
-<p>
-<b>JkLogLevel</b>
-set the log level between :
-</p>
-
-<ul>
-<li>
-<b>info</b> log will contains standard mod_jk activity (default).
-</li>
-<li>
-<b>error</b> log will contains also error reports.
-</li>
-<li>
-<b>debug</b> log will contains all information on mod_jk activity
-</li>
-</ul>
-
-<div class="example"><pre>
- JkLogLevel info
-</pre></div>
-
-<p>
-<b class="code">info</b> should be your default selection for normal operations.
-<br>
-<br>
-</p>
-
-<p>
-<b>JkLogStampFormat</b> will configure the date/time format found on mod_jk logfile.
-Using the strftime() format string it's set by default to <b>"[%a %b %d %H:%M:%S %Y]"</b>
-</p>
-
-<div class="example"><pre>
- JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
-</pre></div>
-
-<p>
-<br>
-<br>
-</p>
-
-<p>
-<b>JkRequestLogFormat</b> will configure the format of mod_jk individual request logging.
-Request logging is configured and enabled on a per virtual host basis.
-To enable request logging for a virtual host just add a JkRequestLogFormat config.
-The syntax of the format string is similar to the Apache LogFormat command,
-here is a list of the available request log format options:
-</p>
-
-<p>
-<table>
- <tr><th>Options</th><th>Description</th></tr>
- <tr><td>%b</td><td>Bytes sent, excluding HTTP headers (CLF format)</td></tr>
- <tr><td>%B</td><td>Bytes sent, excluding HTTP headers</td></tr>
- <tr><td>%H</td><td>The request protocol</td></tr>
- <tr><td>%m</td><td>The request method</td></tr>
- <tr><td>%p</td><td>The canonical Port of the server serving the request</td></tr>
- <tr><td>%q</td><td>The query string (prepended with a ? if a query string exists, otherwise an empty string)</td></tr>
- <tr><td>%r</td><td>First line of request</td></tr>
- <tr><td>%s</td><td>Request HTTP status code</td></tr>
- <tr><td>%T</td><td>Request duration, elapsed time to handle request in seconds '.' micro seconds</td></tr>
- <tr><td>%U</td><td>The URL path requested, not including any query string.</td></tr>
- <tr><td>%v</td><td>The canonical ServerName of the server serving the request</td></tr>
- <tr><td>%V</td><td>The server name according to the UseCanonicalName setting</td></tr>
- <tr><td>%w</td><td>Tomcat worker name</td></tr>
- <tr><td>%R</td><td>Session route name (available with 1.2.19 and up)</td></tr>
-</table>
-
-<div class="example"><pre>
- JkRequestLogFormat "%w %V %T"
-</pre></div>
-
-<br>
-<br>
-</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="Forwarding"><strong>Forwarding</strong></a></font></td></tr><tr><td><blockquote>
-<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>
-The four following options <b>+ForwardURIxxx</b> are mutually exclusive.
-Exactly one of them is required, a negative sign prefix is not allowed with them.
-The default value is "ForwardURIProxy" since version 1.2.24.
-It was "ForwardURICompatUnparsed" in version 1.2.23 and
-"ForwardURICompat" until version 1.2.22.
-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>
-All options are inherited from the global server to virtual hosts.
-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>
-Using JkOptions <b>ForwardURIProxy</b>, the forwarded URI
-will be partially reencoded after processing inside Apache httpd and
-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>
-
-<br>
-<br>
-</p>
-
-<p>
-Using JkOptions <b>ForwardURICompatUnparsed</b>, the forwarded URI
-will be unparsed. It's spec compliant and secure.
-It will always forward the original request URI, so rewriting
-URIs with mod_rewrite and then forwarding the rewritten URI
-will not work.
-
-<div class="example"><pre>
- JkOptions +ForwardURICompatUnparsed
-</pre></div>
-
-<br>
-<br>
-</p>
-<p>
-Using JkOptions <b>ForwardURICompat</b>, the forwarded URI will
-be decoded by Apache httpd. Encoded characters will be decoded and
-explicit path components like ".." will already be resolved.
-This is less spec compliant and is <b>not safe</b> if you are using
-prefix JkMount. This option will allow to rewrite URIs with
-mod_rewrite before forwarding.
-
-<div class="example"><pre>
- JkOptions +ForwardURICompat
-</pre></div>
-
-<br>
-<br>
-</p>
-<p>
-Using JkOptions <b>ForwardURIEscaped</b>, the forwarded URI will
-be the encoded form of the URI used by ForwardURICompat.
-Explicit path components like ".." will already be resolved.
-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>
-
-<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
-can block several well known URL encoding attacks. By default, this option
-is not set.
-</p>
-<p>
-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>
-
-<br>
-<br>
-</p>
-
-<p>
-JkOptions <b>ForwardDirectories</b> is used in conjunction with <b>DirectoryIndex</b>
-directive of Apache web server. As such mod_dir should be available to Apache,
-statically or dynamically (DSO)
-<br>
-<br>
-</p>
-
-<p>
-When DirectoryIndex is configured, Apache will create sub-requests for
-each of the local-url's specified in the directive, to determine if there is a
-local file that matches (this is done by stat-ing the file).
-</p>
-
-<p>
-If ForwardDirectories is set to false (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
-directive Options doesn't specify Indexes for that directory).
-</p>
-
-<p>
-If ForwarDirectories is set to true and Apache doesn't find any files that
-match, the request will be forwarded to Tomcat for resolution. This is used in
-cases when Apache cannot see the index files on the file system for various
-reasons: Tomcat is running on a different machine, the JSP file has been
-precompiled etc.
-</p>
-
-<p>Note that locally visible files will take precedence over the
-ones visible only to Tomcat (i.e. if Apache can see the file, that's the one
-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>
-</p>
-
-<p>
-JkOptions <b>ForwardLocalAddress</b>, you ask mod_jk to send the local address,
-of the Apache web server instead remote client address. This can be used by
-Tomcat remote address valve for allowing connections only from registered Apache
-web servers.
-
-<div class="example"><pre>
- JkOptions +ForwardLocalAddress
-</pre></div>
-
-<br>
-<br>
-</p>
-
-<p>
-JkOptions <b>FlushPackets</b>, you ask mod_jk to flush Apache's connection
-buffer after each AJP packet chunk received from Tomcat. This option can have
-a strong performance penalty for Apache and Tomcat as writes are performed
-more often than would normally be required (ie: at the end of each
-response).
-
-<div class="example"><pre>
- JkOptions +FlushPackets
-</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>
-
-<br>
-<br>
-</p>
-
-<p>
-JkOptions <b>DisableReuse</b>, you ask mod_jk to close connections immediately
-after their use. Normally mod_jk uses persistent connections and pools idle
-connections to reuse them, when new requests have to be sent to Tomcat.
-</p>
-
-<p>
-Using this option will have a strong performance penalty for Apache and Tomcat.
-Use this only as a last resort in case of unfixable network problems.
-If a firewall between Apache and Tomcat silently kills idle connections,
-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>
-
-<br>
-<br>
-</p>
-
-<p>
-JkOptions <b>ForwardKeySize</b>, you ask mod_jk, when using ajp13, to forward also the SSL Key Size as
-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>
-
-<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
-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.
-<br>
-This directive exists only since version 1.2.22.
-<div class="example"><pre>
- JkOptions +ForwardSSLCertChain
-</pre></div>
-
-<br>
-<br>
-</p>
-
-<p>
-The directive <b>JkEnvVar</b> allows you to forward environment variables
-from Apache server to Tomcat engine.
-You can add a default value as a second parameter to the directive.
-If the default value is not given explicitly, the variable
-will only be send, if it is set during runtime.
-<br>
-The variables can be retrieved on the Tomcat side as request attributes
-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>
-</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="Assigning URLs to Tomcat"><strong>Assigning URLs to Tomcat</strong></a></font></td></tr><tr><td><blockquote>
-<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.
-</p>
-
-<p>
-<b>JkMount</b> directive assign specific URLs to Tomcat.
-In general the structure of a JkMount directive is:
-</p>
-
-<div class="example"><pre> JkMount [URL prefix] [Worker name]</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>
-
-<p>
-You can use the JkMount directive at the top level or inside &lt;VirtualHost&gt; sections of your httpd.conf file.
-</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="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>
-<p>
-If the Tomcat Host appBase (webapps) directory is accessible by the Apache web server,
-Apache can be configured to serve web application context directory static files instead
-of passing the request to Tomcat.
-</p>
-
-<p>
-Caution: For security reasons is is strongly recommended that JkMount is used to
-pass all requests to Tomcat by default and JkUnMount is used to explicitly
-exclude static content to be served by httpd. It should also be noted that
-content served by httpd will bypass any security constraints defined in the
-application's web.xml.
-</p>
-
-<p>Use Apache's <b>Alias</b> directive to map a single web application context directory into Apache's
-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 httpd
- JkUnMount /*.html worker1
- JkUnMount /*.jpg worker1
- JkUnMount /*.gif worker1
-</pre></div>
-
-<p>
-Starting with mod_jk 1.2.6 for Apache 2.0/2.2 and 1.2.19 for Apache 1.3, it's possible to exclude some URL/URI from
-jk processing by setting the env var <b>no-jk</b>, for example with the SetEnvIf Directive.
-</p>
-
-<p>
-You could use <b>no-jk</b> env var to fix problem with mod_alias or mod_userdir
-directive when jk and alias/userdir URLs matches.
-</p>
-
-<div class="example"><pre>
- # All URL goes to tomcat except the one containing /home
- &lt;VirtualHost *:80&gt;
- ServerName testxxx.mysys
- DocumentRoot /www/testxxx/htdocs
-
- # Use SetEnvIf to st no-jk when /home/ is encountered
- SetEnvIf Request_URI "/home/*" no-jk
-
- # Now /home will goes to /home/dataxxx/
- Alias /home /home/dataxxx/
-
- &lt;Directory "/home/dataxxx"&gt;
- Options Indexes MultiViews
- AllowOverride None
- Order allow,deny
- Allow from all
- &lt;/Directory&gt;
-
- JkMount /* myssys-xxx
-
- &lt;/VirtualHost&gt;
-</pre></div>
-
-
-<p>
-Use the mod_jk <b>JkAutoAlias</b> directive to map all web application context directories
-into Apache's document space.
-</p>
-
-<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>
-</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 httpd
- JkUnMount /*.html ajp13
- JkUnMount /*.jpg ajp13
- JkUnMount /*.gif ajp13
-</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
-move part of the content to Apache httpd, you can tell
-mod_jk to strip off all session ids from URLs for
-those requests, that do not get forwarded via mod_jk.
-</p>
-
-<p>
-You enable this feature by setting JkStripSession to On.
-It can be enabled individually for virtual servers. The default
-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>
-<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>
-In case you get source from subversion, ie without an existing configure script,
-you should have autoconf for configuration and installation.
-<p>
-To create tomcat-connectors's autoconf script, you will need libtool
-1.5.2, automake 1.10 and autoconf 2.59 or newer. The use of more recent
-versions is encouraged, e.g. for reliable detection of the features of
-recent version of operating systems.
-</p><p>
-Those tools will not be required if you are just using a package downloaded from apache.org,
-they are only required for developers.
-</p>
-<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>
-</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="Using configure to build mod_jk"><strong>Using configure to build mod_jk</strong></a></font></td></tr><tr><td><blockquote>
-<p>Here's how to use configure to prepare mod_jk for building, just type:
-<div class="example"><pre>
-./configure [autoconf arguments] [tomcat-connectors arguments]
-</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>
-
-<p>
-If you want to build mod_jk for different version of Apache httpd, like 1.3, 2.0 and 2.2,
-you need to go through the full build process for each of them.
-Please note, that httpd 2.0 and 2.2 modules are <b>not</b> compatible. The mod_jk directory
-used is "apache-2.0" in both cases, but you need to compile separately.
-<ul>
-<li>
-use configure and indicate the correct Apache httpd apxs location (--with-apxs)
-</li>
-<li>
-use make
-</li>
-<li>
-copy the resulting mod_jk.so binary from the apache-1.3 or apache-2.0 subdirectory
-to the Apache httpd modules location.
-</li>
-<li>
-make clean (to remove all previously compiled object files)
-</li>
-<li>
-Start over with the apxs location for your next Apache httpd version.
-</li>
-</ul>
-
-</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="configure arguments"><strong>configure arguments</strong></a></font></td></tr><tr><td><blockquote>
-<p>
-<table>
- <tr valign="top"><th>Apache related parameters</th><th></th></tr>
- <tr valign="top">
- <td>--with-apxs[=FILE]</td>
- <td>FILE is the location of the apxs tool. Default is finding apxs in PATH.
-It builds a shared Apache module. It detects automatically the Apache version.
-(2.0/2.2 and 1.3)</td>
- </tr>
- <tr valign="top"><td>--with-apache=DIR</td>
- <td>DIR is the path where apache sources are located.
-The apache sources should have been configured before configuring mod_jk.
-DIR is something like: /home/apache/apache_1.3.19
-It builds a static Apache module.</td>
- </tr>
- <tr valign="top"><td>--enable-EAPI</td>
- <td>This parameter is needed when using Apache-1.3 and mod_ssl, otherwise you will get the error message:
-"this module might crash under EAPI!" when loading mod_jk.so in httpd.
-Not needed when --with-apxs has been used</td>
-</tr>
- <tr valign="top"><td>--enable-prefork</td>
- <td>
-In case you build mod_jk for a multi-threaded Apache httpd 2.0/2.2 MPM (Multi-Processing Module),
-some areas of mod_jk code need to be synchronised to make it thread-safe.
-Because configure can not easily detect, whether your are using a multi-threaded MPM,
-mod_jk by default is always build thread-safe for Apache httpd 2.0/2.2.
-If you are sure, that your MPM is not multi-threaded, you can use "--enable-prefork"
-to force the removal of the synchronisation code (thus increasing performance a bit).
-For instance, the prefork MPM is not multi-threaded. For Apache httpd 1.3
-this flag will be set automatically.</td>
-</tr>
- <tr valign="top"><td>--disable-trace</td>
- <td>
-When using log level "trace", mod_jk traces a lot of function calls with
-"enter" and "exit" log messages. Even if the log level is not "trace",
-comparing the log levels to decide about logging has some performance
-impact.<br>
-If you use "--disable-trace", then the trace log code doesn't get compiled
-into the module binary and you might save some cycles during execution.<br>
-Even with "--disable-trace" logging debug messages with debug log level
-will still be possible.</td>
-</tr>
- <tr valign="top"><td>--enable-api-compatibility</td>
- <td>
-Only use httpd API functions available in all httpd production releases
-of the chosen major httpd release branch. This improves binary
-compatibility of module builds with httpd releases older than the release
-against mod_jk is build (only between minor httpd versions).</td>
-</tr>
- <tr valign="top"><td>--enable-flock</td>
- <td>
-In case the operating system supports flock system call use this flag to enable this
-faster locks that are implemented as system call instead emulated by GNU C library.<br>
-However those locks does not work on NFS mounted volumes, so you can use
-"--enable-flock" during compile time to force the flocks() calls.</td>
-</tr>
-
-</table>
-<br>
-<table>
- <tr valign="top"><th>DEPRECATED: JNI related parameters</th><th></th></tr>
- <tr valign="top"><td>--enable-jni</td>
- <td>Build the JNI worker and so the build process will require
-some information about your Java Environment</td>
- </tr>
- <tr valign="top"><td>--with-java-home=DIR</td>
- <td>DIR is the patch to the JDK root directory. Something like: /opt/java/jdk12</td>
- </tr>
- <tr valign="top"><td>--with-os-type=SUBDIR</td><td>SUBDIR is the os-type subdirectory,
- configure should guess it correctly.</td>
- </tr>
- <tr valign="top"><td>--with-arch-type=SUBDIR</td><td>SUBDIR is the arch subdirectory,
- configure should guess it correctly.</td>
- </tr>
- <tr valign="top"><td>--with-java-platform=VAL</td><td>VAL is the Java platform 1 is 1.1.x and 2 is for 1.2 and higher,
- configure should guess it correctly.</td>
- </tr>
-</table>
-</p>
-<p><font color="#ff0000">The JNI option has been deprecated. It will likely not work. Do not use it.</font></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="Examples of configure use"><strong>Examples of configure use</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">Apache 1.3 and 2.0/2.2 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>
-
-<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 2.0/2.2 build with JNI support</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs2=/opt/apache2/bin/apxs \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen">--with-java-home=${JAVA_HOME} --with-java-platform=2 \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen">--enable-jni</b></nobr></code><br></td></tr></table></div></p>
-<p><font color="#ff0000">The JNI option has been deprecated. It will likely not work. Do not use it.</font></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 for Apache on Windows NT/2K/XP"><strong>Building mod_jk for Apache on Windows NT/2K/XP</strong></a></font></td></tr><tr><td><blockquote>
-<p>
-The module was developed using Visual C++ version 6.0, so having this environment is a prerequisite
-if you want to perform a custom build.
-</p>
-<p>
-The steps that you need to take are:
-</p>
-<ul>
-<li>
-Change directory to the apache 1.3 or apache 2.0 source directory depending on your version of Apache.
-</li>
-<li>
-If you want to build mod_jk for Apache 1.3, set an <b>APACHE1_HOME</b> environment variable which points
-to where your Apache 1.3 is installed.
-A mod_jk module for Apache 2.0 build will require <b>APACHE2_HOME</b> environment variable to be set.
-</li>
-<li>
-Copy mod_jk.so to Apache's modules directory.
-</li>
-</ul>
-<p>
-An example on how to build mod_jk for Apache 1.3:
-</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">Set location for Apache 1.3 sources</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">set APACHE1_HOME=c:\apache13</b></nobr></code><br><div class="screen">Change directory to the mod_jk module for Apache 1.3</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd c:\home\apache\jk\native\apache-1.3</b></nobr></code><br><div class="screen">Build the sources using MSDEV</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">MSDEV mod_jk.dsp /MAKE ALL</b></nobr></code><br><div class="screen">Copy the dll to your apache modules directory</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cp release\mod_jk.so c:\apache13\modules\</b></nobr></code><br></td></tr></table></div></p>
-
-<p>
-An example on how to build mod_jk for Apache 2.0:
-</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">Set location for Apache 2.0 sources</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">set APACHE2_HOME=c:\apache20</b></nobr></code><br><div class="screen">Change directory to the mod_jk module for Apache 2.0</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd c:\home\apache\jk\native\apache-2.0</b></nobr></code><br><div class="screen">Build the sources using MSDEV</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">MSDEV mod_jk.dsp /MAKE ALL</b></nobr></code><br><div class="screen">Copy the dll to your apache modules directory</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cp release\mod_jk.so c:\apache20\modules\</b></nobr></code><br></td></tr></table></div></p>
-
-<p>
-If msdev is not in your path, enter the full path to msdev.exe.
-Also, ApacheCore.lib is expected to exist in the <b>${APACHEX_HOME}\src\CoreD</b> and
-<b>${APACHEX_HOME}\src\CoreR</b> directories before linking will succeed.
-You will need to build enough of the Apache source to create these libraries.
-This will build both release and debug versions of the redirector plug-in (mod_jk).
-An alternative will be to open mod_jk.dsp in msdev and build it using the build menu.
-</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>
-<p>
-Since OS400 V4R5, System I (AS/400) has used Apache 2.0 as their primary web server,
-replacing the old IBM webserver.
-It's now possible to build mod_jk on System I thanks to the help of the IBM
-Rochester Labs which has provided information and patches to adapt mod_jk to i5/OS.
-</p>
-<p>
-You should have at least Apache 2.0.58 (product 5722DG1), a C Compiler and IFS.
-Apache 2.0.58 is provided with the most recent set of PTFs for the iSeries Apache
-server, which can be found at <a href="http://www.ibm.com/servers/eserver/iseries/software/http/">
-http://www.ibm.com/servers/eserver/iseries/software/http/</a>
-</p>
-<p>
-The all latest Apache 2 for i5/OS V5R3 (or V5R4) is now 2.0.58 (as of 2007/04/17).
-Be sure to have the latest PTFs loaded if you want to make use of jk 1.2.15 and higher.
-NB: The latest mod_jk known to work on i5/OS V5R3 was 1.2.19.
-</p>
-<p>
-New in i5/OS V5R4, UTF is required, also for Apache modules, as such Apache modules do not require
-translations to/from EBCDIC but works should be done to port mod_jk 1.2.23 (and higher) to V5R4.
-
-From the V5R4 Infocenter :
-
-As of i5/OS(tm) V5R4, modules must be recompiled with a UTF locale. This creates an environment where locale-dependent C runtime functions assume
-that string data is encoded in UTF-8. Any hardcoded constants can be encoded in UTF-8 by adding a #pragma convert(1208) statement in the module.
-Additionally, input data from the client will no longer be converted to EBCDIC but will be passed as-is.
-Output data sent from the module is not converted either so it must be encoded in ASCII or UTF8 as required.
-APR and HTTP APIs as of V5R4, expect data in UTF-8. Note that several APIs have additional functions that allow a CCSID to be set to
-indicate the encoding of the parameters being passed. Conversion functions between UTF-8 and EBCDIC have been added.
-Be sure to review APIs used by your module to be aware of current changes.
-
-</p>
-<p>
-To configure mod_jk on System I use the CL source provided with the mod_jk source.
-</p>
-<ul>
-<li>
-Get the latest mod_jk source and untar it on a Windows or Unix boxes
-</li>
-<li>
-Create a directory in IFS, ie /home/apache
-</li>
-<li>
-Send the whole jk source directory to System I directory via FTP.
-</li>
-<li>
-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">===&gt;</em><b class="screen">CRTLIB MOD_JK TEXT(&#145;Apache mod'jk tomcat connector module')</b></nobr></code><br><div class="screen">Create service program source file</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTSRCPF MOD_JK/QSRVSRC TEXT(&#145;Service program source file&#146;)</b></nobr></code><br><div class="screen">Create the CL build program source file</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTSRCPF FILE(MOD_JK/QCLSRC) TEXT(&#145;Build program source file&#146;)</b></nobr></code><br><div class="screen">Edit the service program source file</div><code><nobr><em class="screen">===&gt;</em><b class="screen">STRSEU MOD_JK/QSRVSRC MOD_JK</b></nobr></code><br></td></tr></table></div></p>
-<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==&gt; 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>
-</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">===&gt;</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">===&gt;</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">===&gt;</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">===&gt;</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>
-<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">===&gt;</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">===&gt;</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">===&gt;</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><em class="screen">===&gt;</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>
-<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>
-<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.0:</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.0)</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>
-<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 httpd executable brings some performance
-improvements. The configure option --with-apache prepare mod_jk to install it
-in the Apache source tree.
-The option --with-apache works both for Apache-1.3 and Apache-2.0.
-The examples below show how to get mod_jk in the httpd 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 in Apache-2.0"><strong>Installation in Apache-2.0</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/apache20/httpd-2.0.43 is the directory where the httpd-2.0 sources
-are located. </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apache=/home/apache20/httpd-2.0.43</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/apache20/httpd-2.0.43/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.0. </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd /home/apache20/httpd-2.0.43</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>
-<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>
-
-<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation in Apache-1.3"><strong>Installation in 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>
-<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 &copy; 1999-2011, Apache Software Foundation
- </em></font></div></td></tr></table></body></html> \ No newline at end of file