diff options
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto')
6 files changed, 0 insertions, 4581 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&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><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> - ... - <Engine ...> - ... - <Listener className="org.apache.jk.config.ApacheConfig" modJk="/path/to/mod_jk.so" /> - ... - </Engine> - ... -</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 <IfModule directive> (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 <VirtualHost> 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 - <VirtualHost *:80> - 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/ - - <Directory "/home/dataxxx"> - Options Indexes MultiViews - AllowOverride None - Order allow,deny - Allow from all - </Directory> - - JkMount /* myssys-xxx - - </VirtualHost> -</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:\></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:\></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:\></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:\></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:\></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:\></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:\></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:\></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">===></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> -<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> -</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">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">===></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><em 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> -<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 © 1999-2011, Apache Software Foundation - </em></font></div></td></tr></table></body></html>
\ No newline at end of file diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/iis.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/iis.html deleted file mode 100644 index 5dc4ea1b..00000000 --- a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/iis.html +++ /dev/null @@ -1,685 +0,0 @@ -<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Webserver HowTo - IIS 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"><meta name="author" value="Yoav Shapira"><meta name="email" value="yoavs@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache 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&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><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>IIS HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/iis.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 set up IIS to cooperate with Tomcat. -</p> - -<p> -Normally IIS can not execute Servlets and Java Server Pages (JSPs), -configuring IIS to use the JK ISAPI redirector plugin will let IIS send servlet and -JSP requests to Tomcat (and this way, serve them to clients). -</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/workers.html">workers.properties</a>, -<a href="../reference/uriworkermap.html">uriworkermap</a> -and <a href="../reference/iis.html">IIS</a>. -</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>c:\tomcat</b>. -A worker is defined to be a tomcat process that accepts work from the IIS 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 IIS-Tomcat redirector was developed and tested on: -<ul> -<li> -WinNT4.0-i386 SP4/SP5/SP6a (should be able to work with other service packs), Win2K and WinXP and Win98 -</li> -<li> -IIS4.0 and PWS4.0 (numerous people have working IIS 5 and IIS 6 configurations) -</li> -<li> -Tomcat 3.2 and later, Tomcat 4.x, Tomcat 5 and 5.5 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="IIS 5 and 6 Notes"><strong>IIS 5 and 6 Notes</strong></a></font></td></tr><tr><td><blockquote> -<p> -There are extra steps you need to take for configuring Tomcat with IIS 5 and 6. Please see the appropriate links from -<a href="http://wiki.apache.org/tomcat/Tomcat/Links">Tomcat Useful Links</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="IIS 7 notes"><strong>IIS 7 notes</strong></a></font></td></tr><tr><td><blockquote> -<p> -There is a known bug in IIS that may result in incomplete log messages. See <a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=45769">bug 45769</a> -for further details. -</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> -<ol> -<li> -The IIS-Tomcat redirector is an IIS plugin (filter + extension), IIS load the redirector plugin and calls its -filter function for each in-coming request. -</li> -<li> -The filter then tests the request URL against a list of URI-paths held inside uriworkermap.properties, -If the current request matches one of the entries in the list of URI-paths, -the filter transfers the request to the extension. -</li> -<li> -The extension collects the request parameters and forwards them to the appropriate worker using the defined -protocol like <b>ajp13</b>. -</li> -<li> -The extension collects the response from the worker and returns it to the browser. -</li> -</ol> -</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="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote> -<p> -A pre-built version of the ISAPI redirector server plugin, isapi_redirect.dll, is available under -the win32/i386 directory of tomcat-connectors distribution. -For those using Netscape as your browser, try downloading a zip version of the file, if available. -There can be problems using Netscape to download DLL files. - -You can also build a copy locally from the source present in tomcat-connectors distribution. - -The Tomcat redirector requires three entities: - -<ul> -<li> -<b>isapi_redirect.dll</b> - The IIS server plugin, either obtain a pre-built DLL or build it yourself (see the build section). -</li> -<li> -<b><a href="../reference/workers.html">workers.properties</a></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. -</li> -<li> -<b><a href="../reference/uriworkermap.html">uriworkermap.properties</a></b> - A file that maps URL-Path patterns to workers. -A sample uriworkermap.properties can be found under the conf directory as well. -</li> -</ul> -</p> - -<p> -The installation includes the following parts: - -<ul> -<li> -Configuring the ISAPI redirector with a default /examples context and checking that you can serve servlets with IIS. -</li> -<li> -Adding more contexts to the configuration. -</li> -</ul> -</p> - -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuring the ISAPI Redirector"><strong>Configuring the ISAPI Redirector</strong></a></font></td></tr><tr><td><blockquote> -<p> -In this document I will assume that isapi_redirect.dll is placed in -<b>c:\tomcat\bin\win32\i386\isapi_redirect.dll</b> and -that the properties files which you created are in <b>c:\tomcat\conf</b>. -</p> -<p> -<ol> -<li> -In the registry, create a new registry key named -<b>"HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0"</b> -</li> -<li> -Add a string value with the name <b>extension_uri</b> and a value of <b>/jakarta/isapi_redirect.dll</b> -</li> -<li> -Add a string value with the name <b>log_file</b> and a value pointing to where you want your -log file to be (for example <b>c:\tomcat\logs\isapi.log</b>). -</li> -<li> -Add a string value with the name <b>log_level</b> and a value for your log level -(can be debug, info, error or emerg). -</li> -<li> -Add a string value with the name <b>worker_file</b> and a value which is the full path -to your workers.properties file (for example <b>c:\tomcat\conf\workers.properties</b>) -</li> -<li> -Add a string value with the name <b>worker_mount_file</b> and a value which is the full path -to your uriworkermap.properties file (for example <b>c:\tomcat\conf\uriworkermap.properties</b>) -</li> -<li> -Using the IIS management console, add a new virtual directory to your IIS/PWS web site. -The name of the virtual directory must be jakarta. -Its physical path should be the directory where you placed isapi_redirect.dll -(in our example it is c:\tomcat\bin\win32\i386). -While creating this new virtual directory assign it with execute access. -</li> -<li> -Using the IIS management console, add isapi_redirect.dll as a filter in your IIS/PWS web site. -The name of the filter should reflect its task (I use the name tomcat), -its executable must be our c:\tomcat\bin\win32\i386\isapi_redirect.dll. -For PWS, you'll need to use regedit and add/edit the <b>"Filter DLLs"</b> key under -<b>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters</b>. -This key contains a "," separated list of dlls (full paths) - -you need to insert the full path to isapi_redirect.dll. -</li> -<li> -If you're using IIS 6.0 you must also do the following: -<br> -Using the IIS management console, add the Jakarta Isapi Redirector to the Web -Service Extensions. -<ol> -<li>Right-click on Web Service Extensions and choose Add a new Web Service -Extension.</li> -<li>Enter tomcat for the Extension Name.</li> -<li>Add the isapi_redirect.dll to the required files.</li> -<li>Check the Set extension status to Allowed.</li> -<li>Click on OK.</li> -</ol> -</li> -<li> -Restart IIS (stop + start the IIS service), make sure that the tomcat filter is marked with a green up-pointing arrow. -Under Win98 you may need to <b>cd WINDOWS\SYSTEM\inetsrv</b> and type PWS /stop -( the DLL and log files are locked - even if you click the stop button, -PWS will still keep the DLLs in memory. ). Type pws to start it again. -</li> -</ol> -</p> -<p> -That's all, you should now start Tomcat and ask IIS to serve you the /examples context. -Try <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a> for example and -execute some of the JSP examples. -</p> -<p> -If this does not work successfully, refer to the Troubleshooting section below for help on correcting the problem. -</p> - -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Adding additional Contexts"><strong>Adding additional Contexts</strong></a></font></td></tr><tr><td><blockquote> -<p> -The examples context is useful for verifying your installation, -but you will also need to add your own contexts. Adding a new context requires two operations: -</p> -<p> -<ol> -<li> -Adding the context to Tomcat (I am not going to talk about this). -</li> -<li> -Adding the context to the ISAPI redirector. -</li> -</ol> -</p> -<p> -Adding a context to the ISAPI redirector is simple, all you need to do is to edit -your uriworkermap.properties and to add a line that looks like: -</p> - -<div class="example"><pre> - /context/*=worker_name -</pre></div> - -<p> -Workers and their name are defined in workers.properties, by default workers.properties comes -with a single pre-configured worker named <b>"defworker"</b> so you can use it. -As an example, if you want to add a context named "shop", the line that you should add to -uriworkermap.properties will be: -</p> - -<div class="example"><pre> - /shop/*=defworker -</pre></div> - -After saving uriworkermap.properties restart IIS and it will serve the new context. -<p> -The above should be all you need for IIS to pass through to Tomcat any request for any URI which corresponds -to a Tomcat context (webapp). -</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="Advanced Context Configuration"><strong>Advanced Context Configuration</strong></a></font></td></tr><tr><td><blockquote> -<p> -If your webiste is very busy (more than 100 requests/second, or more than 100 simultaneous client connections), -it might sometimes be desirable to have IIS serve static content (html, gif, jpeg etc.) directly, -even if these files are part of a context served by Tomcat. Allowing IIS to serve such files directly may - avoid the small overhead consisting of passing the request to Tomcat via the redirector, and may free up - Tomcat somewhat, by using it only to process requests that only Tomcat can handle (e.g. requests to JSP pages and java servlets). -</p> -<p> -For example, consider the html and gif files in the examples context : you could serve these files directly -with IIS; there is no need to serve them from the Tomcat process. -</p> -<p><font color="#ff0000">However, you should be very careful when you implement the following configuration style, because by doing so you are -in fact providing a "back-door" to IIS, and allowing it to serve files out of a Tomcat context without Tomcat's knowledge, -thus bypassing any security -restrictions which Tomcat itself and the Tomcat context (webapp) may place on those files.</font></p> -<p> -Making IIS serve static files that are part of the Tomcat contexts requires the following: -<ol> -<li> -Configuring IIS to know about the Tomcat contexts -</li> -<li> -Configuring the redirector to leave the static files for IIS -</li> -</ol> -</p> - -<p> -Adding a Tomcat context to IIS requires the addition of a new IIS virtual directory that covers the Tomcat context. -For example adding a /example IIS virtual directory that covers the c:\tomcat\webapps\examples directory. -</p> - -<p> -Configuring the redirector is somewhat harder, you will need to specify the exact -URL-Path pattern(s) which you want Tomcat to handle (usually only JSP files and servlets). -This requires a change to the uriworkermap.properties : - -<div class="example"><pre> - For the examples context it requires to replace the following line - /examples/*=defworker - with the following two lines - /examples/*.jsp=defworker - /examples/servlet/*=defworker -</pre></div> -</p> - -<p> -As you can see the second configuration is more explicit, it actually instruct the redirector -to redirect only requests to resources under /examples/servlet/ and resources under /examples/ -whose name ends with .jsp. -</p> - -<p> -You can even be more explicit and provide lines such as: - -<div class="example"><pre> - /example/servletname=defworker -</pre></div> -</p> - -<p> -that instructs the redirector to redirect all requests whose URL-path matches the leading string "/example/servletname" -to the worker named defworker. -</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="Protecting the content of your Tomcat contexts"><strong>Protecting the content of your Tomcat contexts</strong></a></font></td></tr><tr><td><blockquote> -<p>Once again, be aware that by allowing IIS to access the content of your Tomcat context directly, you are -potentially bypassing Tomcat's protection of that content. You should thus make sure to protect this content -at the IIS level if needed, by using the corresponding IIS management console functions. -</p> -<p> -In particular, each servlet application (context) has a special directory named WEB-INF, -which contains sensitive configuration data and Java classes, and which should always be kept hidden from web users. -Using the IIS management console it is possible to protect the WEB-INF directory from user access, but considering that -this is a general requirement, and considering that it is easy to forget to implement this protection -at the IIS level, the redirector plugin does it automatically for you, and it will reject any request -which contains WEB-INF in its URL-path. -</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="Advanced Worker Configuration"><strong>Advanced Worker Configuration</strong></a></font></td></tr><tr><td><blockquote> -<p> -Sometimes you may want to serve different contexts with different Tomcat processes -(for example to spread the load among different machines). -To achieve such a goal you will need to define several workers and assign each context to its own worker. -</p> -<p> -Defining additional workers is done in the workers.properties file. This file includes two types of entries: -</p> - -<p> -<div class="example"><pre> - # An entry that lists all the workers defined - worker.list=worker1, worker2 - # Entries that define the host and port associated with each of these workers - worker.worker1.host=localhost - worker.worker1.port=8009 - worker.worker1.type=ajp13 - worker.worker2.host=otherhost - worker.worker2.port=8009 - worker.worker2.type=ajp13 -</pre></div> -</p> - -<p> -The above example defined two workers, now we can use these workers to serve two different contexts -each with its own worker: -<div class="example"><pre> - example uriworkermap.properties fragment - /examples/*=worker1 - /webpages/*=worker2 -</pre></div> -</p> - -<p> -As you can see the <b>examples</b> context is served by <b>worker1</b> while the -<b>webpages</b> context is served by <b>worker2</b>. -</p> - -<p> -More information on using and configuring workers in the <a href="../generic_howto/workers.html">Workers HowTo</a> -and in the <a href="../reference/workers.html">worker.properties configuration reference</a>. -</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 ISAPI redirector"><strong>Building ISAPI redirector</strong></a></font></td></tr><tr><td><blockquote> -<p> -The redirector was developed using Visual C++ Ver.6.0, so having this environment is a prerequisite if you want -to perform a custom build. You should also have the IIS developer SDK. - -The steps that you need to take are: -<ul> -<li> -Change directory to the isapi plugins source directory. -</li> -<li> -Make the source with MSDEV -</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">Change directory to the isapi plugins source directory</div><code><nobr><em class="screen">c:\></em><b class="screen">cd c:\home\apache\jk\iis</b></nobr></code><br><div class="screen">Build the sources using MSDEV</div><code><nobr><em class="screen">c:\></em><b class="screen">MSDEV isapi.dsp /MAKE ALL</b></nobr></code><br></td></tr></table></div></p> -</p> -<p> -If msdev is not in your path, enter the full path to msdev.exe. -This will build both release and debug versions of the redirector plugin. -An alternative will be to open the isapi workspace file (isapi.dsw) 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="Troubleshooting"><strong>Troubleshooting</strong></a></font></td></tr><tr><td><blockquote> -<p> -It is easy to have the ISAPI redirector not work the first time you try to install it. -</p> -<p> -If this happens to you, here are some steps to follow to try to correct the problem. -</p> -<p> -These steps aren't guaranteed to cover all possible problems, -but they should help find the typical mistakes. -</p> -<p> -If you make any corrections during these steps, restart the IIS service as described above in the last step -of the installation, then retry the step. -</p> - -<p>To enable error tracking, make sure web site activity is being logged. -For PWS 4.0 make sure "Save Web Site Activity Log" is checked in the Advanced Options of the Personal Web Manager. -</p> - -<p> -Note: These steps assume your <b>worker_mount_file</b> setting points to an unmodified copy of the -<b>uriworkermap.properties</b> file.<br> -Results may be misleading if <b>worker_mount_file</b> points to a modified <b>uriworkermap.properties</b> -or the <b>uriworkermap.properties-auto</b> file.<br> -It is also assumed that the <b>"/examples" context</b> works correctly if you access Tomcat directly. -</p> - -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Win98"><strong>Win98</strong></a></font></td></tr><tr><td><blockquote> -<p> -Start the IIS service and Tomcat. -</p> -<p> -Check for the presence of the ISAPI redirector log file you specified in the log_file setting. -If not found, verify the following: -</p> -<ul> -<li> -Check the "Filter DLLs" setting in the "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters" -key and make sure the path is correct. -</li> -<li> -Check the spelling of the "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0" key. -Case isn't important, but an incorrect letter will prevent the isapi_redirect.dll from finding its registry settings. -</li> -<li> -Check the log_file setting for typos, name and data. Also insure the directory in which the log file will appear already exists. -</li> -If the above are set correctly, the ISAPI redirector should be able to create the log file. -</ul> -<p> -Invoke the URL <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a> -in your browser. -Case is important in Tomcat. The characters following "localhost" in the URL must be lower case. -If the page fails to appear, stop the IIS service (required to view the IIS log file). -Then examine the last line in the IIS log file in found in SYSTEM/LogFiles/W3SVC1 : -</p> -<p> -If the last line contains: -</p> -<div class="example"><pre> - GET "/examples/jsp/index.html HTTP/1.1" 404 -</pre></div> -<p> -then the ISAPI redirector is not recognising that it should be handling requests for the "/examples" context. -Check the following: -</p> -<ul> -<li> -Check the extension_uri name for typos. -</li> -<li> -Check the worker_file setting for typos, name and data. -</li> -<li> -Check the worker_mount_file setting typos, name and data. -</li> -If these are set correctly, the ISAPI redirector should recognise that it should handle requests for the "/examples" context. -</ul> - -<p>If the last line contains something like: -</p> - -<div class="example"><pre> - GET "/jakarta/isapi_redirect.dll HTTP1.1" -</pre></div> - -<p> -then the ISAPI redirector is recognising that it should handle the request, -but is not successful at getting Tomcat to service the request. -</p> - -<p> -You should check the HTTP error code following GET "/..." : -</p> - -<div class="example"><pre> - Error 404 - GET "/..." 404 -</pre></div> - -<ul> -<li> -Make sure you entered the URL correctly. -</li> -<li> -Make sure the virtual directory created was called "jakarta". -It should display in Personal Web Manager as "/jakarta" (without the quotes). -</li> -<li> -Make sure the extension_uri data begins with "/jakarta/" (without the quotes). -</li> -</ul> - -<div class="example"><pre> - Error 500 - GET "/..." 500 -</pre></div> - -<ul> -<li> -Make sure that "isapi_redirect.dll" follows "/jakarta/" in the extension_uri setting. -</li> -<li> -Check the workers.properties file and make sure the port setting for worker.ajp12.port is the same as the port specified in the server.xml for the "Apache AJP12 support". -</li> -</ul> - -<div class="example"><pre> - Error 200 or 403 - GET "/..." 200 - GET "/..." 403 -</pre></div> - -<ul> -<li> -Make sure you have checked Execute Access -for the jakarta virtual directory in the Advanced Options of the Personal Web Manager. -</li> -</ul> - -<p> -If the above settings are correct, the index.html page should appear in your browser. -You should also be able to click the Execute links to execute the JSP examples. -</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="WinNT/Win2K/WinXP"><strong>WinNT/Win2K/WinXP</strong></a></font></td></tr><tr><td><blockquote> -<p> -Start the World Wide Web Publishing Service and Tomcat. -</p> -<p> -Check for the presence of the ISAPI redirector log file you specified in the log_file setting. -If not found, check the following: -</p> -<ul> -<li> -Check the "executable" you set for the filter in the IIS Management Console and make sure the path is correct. -</li> -<li>Check the spelling of the "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0" key. -Case isn't important, but an incorrect letter will prevent the isapi_redirect.dll from finding its registry settings. -</li> -<li> -Check the log_file setting for typos, name and data. Also insure the directory in which the log file will appear already exists. -</li> -If the above are set correctly, the ISAPI redirector should be able to create the log file. -</ul> - -<p> -Check the tomcat filter you added and make sure its status shows a green upward-pointing arrow. -If not, check the following: -</p> -<ul> -<li> -Check the worker_file setting for typos, name and data. -</li> -<li> -Check the worker_mount_file setting typos, name and data. -</li> -If the above are set correctly, the green upward-pointing arrow should appear, even if the other settings are wrong. -</ul> - -<p> -Invoke the URL <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a> -in your browser. Case is important in Tomcat. The characters following "localhost" in the URL must be lower case. -If the page fails to appear, examine the last line in the IIS server log file in found in SYSTEM32/LogFiles/W3SVC1. -</p> - -<p> -The last line should contain something like: GET "/jakarta/isapi_redirect.dll HTTP1.1", -which indicates the ISAPI redirector is recognising that it should handle the request. -</p> - -<p> -You should check the HTTP error code following GET "/..." : -</p> - -<div class="example"><pre> - Error 404 - GET "/..." 404 -</pre></div> - -<ul> -<li> -Make sure you entered the URL correctly. -</li> -</ul> - -<div class="example"><pre> - Error 500 - GET "/..." 500 -</pre></div> - -<ul> -<li> -Make sure the virtual directory created was called "jakarta". -</li> -<li> -Make sure that the extension_uri setting is correct. -</li> -<li> -Check the workers.properties file and make sure the port setting for worker.ajp12.port is the same as the port specified in the server.xml for the "Apache AJP12 support". -</li> -</ul> - -<div class="example"><pre> - Error 200 or 403 - GET "/..." 200 - GET "/..." 403 -</pre></div> - -<ul> -<li> -Make sure you have checked Execute Access for the jakarta virtual directory in the -Advanced Options of the Personal Web Manager. -</li> -</ul> - -<p> -If the above settings are correct, the index.html page should appear in your browser. -You should also be able to click the Execute links to execute the JSP examples. -</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-2011, Apache Software Foundation - </em></font></div></td></tr></table></body></html>
\ No newline at end of file diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/nes.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/nes.html deleted file mode 100644 index e9d60a2e..00000000 --- a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/nes.html +++ /dev/null @@ -1,483 +0,0 @@ -<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Webserver HowTo - SunOne -- Netscape/iPlanet HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Jim Jagielski"><meta name="email" value="jim@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shachor@il.ibm.com"><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache 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&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><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>SunOne -- Netscape/iPlanet HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/nes.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 set up Sun ONE Web Server previously known as -Netscape web servers to cooperate with Tomcat. -</p> - -<p> -Normally the Sun ONE Web Servers come with their own Servlet engine, -but you can also configure them to send servlet and JSP requests to Tomcat -using the NSAPI redirector plugin. -</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. -</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>c:\tomcat</b>. -A worker is defined to be a tomcat process that accepts work from the Sun ONE Web 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 NSAPI-Tomcat redirector was developed and tested on: -<ul> -<li> -WINNT 2000/XP/2003 (should be able to work with other service packs) and some Unixes -</li> -<li> -Sun ONE Web Server 6.1 -</li> -<li> -Tomcat 4.1.x , Tomcat 5.0.x and Tomcat 5.5.x -</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.0.x, 4.1.x, 5.0.x, 5.5.x and 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> -<ol> -<li> -The NSAPI-Tomcat redirector is an Netscape service step plugin, -Netscape load the redirector plugin and calls its service handler -function for request that are assigned to the "servlet" configuration object. -</li> -<li> -For each in-coming request Netscape will execute the set of NameTrans directives -that we added to obj.conf, the assign-name function will check if it's from -parameter matches the request URL. -</li> -<li> -If a match is found, assign-name will assign the servlet object name to the request. -This will cause Netscape to send the request to the servlet configuration object. -</li> -<li> -Netscape will execute our jk_service extension. The extension collects the -request parameters and forwards them to the appropriate worker using the ajp13 protocol -(the worker="defworker" parameter in jk_service inform it that the worker for this request is named <b>defworker</b>). -the workers properties files, <b>workers.properties</b>, will indicate that defworker use ajp13 protocol. -</li> -<li> -The extension collects the response from the worker and returns it to the browser. -</li> -</ol> -</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="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote> -<p> -A pre-built version of the NSAPI redirector, nsapi_redirect.dll, may be available under -the win32/i386 directory of tomcat-connectors distribution. -For those using Netscape as your browser, try downloading a zip version of the file, if available. - -You can also build a copy locally from the source present in tomcat-connectors distribution. - - -The Tomcat redirector requires two entities: -<ul> -<li> -nsapi_redirect.dll (Windows) -or- nsapi_redirector.so (Unix) - The NSAPI server plugin, either obtain a pre-built DLL/so or build it yourself -(see the build section). -</li> -<li> -workers.properties - 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. -</li> -</ul> - -The installation includes the following parts: - -<ul> -<li> -Configuring the NSAPI redirector with a default /examples context and checking that you can serve servlets -with Netscape. -</li> -<li> -Adding more contexts to the configuration. -</li> -</ul> - -</p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuring the NSAPI Redirector"><strong>Configuring the NSAPI Redirector</strong></a></font></td></tr><tr><td><blockquote> -<p> -In this document we'll assume that nsapi_redirect.dll is placed in -<b>c:\jk\lib\nsapi_redirect.dll</b>, the properties file is in<b>c:\jk\conf</b> -and you created a log directory <b>c:\jk\logs</b> -</p> - -<ul> -<li> -If the built in servlet support is working disable it. -</li> -<li> -Add the redirector plugin into the Netscape server configuration. -Edit your server <b>magnus.conf</b> and add the following lines: -</li> -</ul> - -<div class="example"><pre> - - Init fn="load-modules" funcs="jk_init,jk_service" shlib="c:/jk/lib/nsapi_redirect.dll" shlib_flags="(global|now)" - Init fn="jk_init" worker_file="c:/jk/conf/workers.properties" log_level="debug" log_file="c:/jk/logs/nsapi.log" shm_file="c:/jk/logs/jk_shm" -</pre></div> -<ul> -<li> -Edit your server <b>obj.conf</b> and add the following lines: -</li> -</ul> -<div class="example"><pre> - - - In the default object NameTrans section - <Object name="default"> - - NameTrans fn="assign-name" from="/servlets-examples(|/*)" name="jknsapi" - NameTrans fn="assign-name" from="/jsp-examples(|/*)" name="jknsapi" - .... - </Object> - - Create a new configuration object by adding the following lines to the end of the obj.conf file - - <Object name="jknsapi"> - ObjectType fn=force-type type=text/plain - Service fn="jk_service" method="*" worker="worker1" - </Object> -</pre></div> - -<ul> -<li> -Edit your worker definition file <b>workers.properties</b>. You should at least choose a connection pool size: -</li> -</ul> - -<div class="example"><pre> - #An entry that lists all the workers defined. For example: - worker.list=worker1 - - # Entries that define the host and port associated with these workers. - worker.worker1.host=localhost - worker.worker1.port=8009 - worker.worker1.type=ajp13 - worker.worker1.connection_pool_size=50 -</pre></div> - -<ul> -<li> -Restart Web Server (stop and start the server) -</li> -</ul> - -<p> -That's all, now you should start tomcat and ask for http://server:port/servlets-examples/ -</p> -<p><font color="#ff0000"> -The file <b>obj.conf</b> seems to be sensitive to leading white space in lines, especially in -the <b>Object</b> element. Make sure you have no leading white space (no indentation) -on any line of this file. -</font></p> - -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Adding additional Contexts"><strong>Adding additional Contexts</strong></a></font></td></tr><tr><td><blockquote> -<p> -The examples context is useful for verifying your installation, but you will also need to add your own contexts. -Adding a new context requires two operations: -</p> -<ul> -<li> -Adding the context to Tomcat (I am not going to talk about this). -</li> -<li> -Assigning the NSAPI redirector to handle this context. -</li> -</ul> - -<p> -Assigning the NSAPI redirector to handle this context is simple, -all you need to do is to edit <b>obj.conf</b> and add a NameTrans line that looks like: -</p> - -<div class="example"><pre> - NameTrans fn="assign-name" from="/<context name>/*" name="jknsapi" -</pre></div> - -<p> -After saving <b>obj.conf</b> restart Netscape and it will serve the new context. -</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="Advanced Context Configuration"><strong>Advanced Context Configuration</strong></a></font></td></tr><tr><td><blockquote> -<p> -Sometimes it is better to have Netscape serve the static pages (html, gif, jpeg etc.) -even if these files are part of a context served by Tomcat. For example, consider the html and gif files in the examples context, there is no need to serve them from the Tomcat process, Netscape will suffice. -</p> -<p> -Making Netscape serve static files that are part of the Tomcat contexts requires the following: -</p> -<ul> -<li> -Configuring Netscape to know about the Tomcat contexts -</li> -<li> -Make sure that the WEB-INF directory is protected from access. -</li> -<li> -Configuring Netscape to assign the NSAPI redirector only specific requests that requires JSP/Servlet handling. -</li> -</ul> - -<p> -Adding a Tomcat context to Netscape requires the addition of a new Netscape virtual directory -that covers the Tomcat context. -</p> - -<p> -For example, adding a /example Netscape virtual directory that -covers the <b>c:\tomcat\webapps\examples</b> directory. -</p> - -<p> -To add a new virtual directory add the following line to your <b>obj.conf</b>: -</p> - -<div class="example"><pre> - NameTrans fn=pfx2dir from=/examples dir="c:/tomcat/webapps/examples" -</pre></div> - -<p> -WEB-INF protection requires some explanation; Each servlet application (context) has a special directory named <b>WEB-INF</b>, -this directory contains sensitive configurations data and Java classes and must be kept hidden from web users. -WEB-INF can be protected by adding the following line to the PathCheck section in the default configuration object: -</p> - -<div class="example"><pre> - PathCheck fn="deny-existence" path="*/WEB-INF/*" - - This line instructs the Netscape server to reject any request with a URL that contain the path /WEB-INF/. -</pre></div> - -<p> -Configuring Netscape to assign the NSAPI redirector only specific requests is somewhat harder, -you will need to specify the exact URL-Path pattern(s) that you want Tomcat to handle -(usually only JSP files and servlets). -</p> - -<p> -This requires a change to NameTrans portion of <b>obj.conf</b>. -</p> - -<div class="example"><pre> - For the examples context it requires to replace the following line: - - NameTrans fn="assign-name" from="/examples/*" name="jknsapi" - - with the following two lines: - - NameTrans fn="assign-name" from="/examples/jsp/*.jsp" name="jknsapi" - NameTrans fn="assign-name" from="/examples/servlet/*" name="jknsapi" -</pre></div> - -<p> -As you can see the second configuration is more explicit, it actually instructs -Netscape to assign the redirector with only requests to resources under -<b>/examples/servlet/</b> and resources under <b>/examples/</b> whose name ends with <b>.jsp</b>. -</p> - -<p> -You can be even more explicit and provide lines such as: -</p> - -<div class="example"><pre> - NameTrans fn="assign-name" from="/examples/servletname" name="jknsapi" - - Instructs Netscape to assign the redirector request whose URL-Path equals /example/servletname -</pre></div> - -</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="Advanced Worker Configuration"><strong>Advanced Worker Configuration</strong></a></font></td></tr><tr><td><blockquote> -<p> -Sometimes you want to serve different contexts with different Tomcat processes -(for example to spread the load among different machines). -To achieve such goal you will need to define several workers and assign each context with its own worker. -</p> - -<p> -Defining workers is done in <b>workers.properties</b>, this file includes two types of entries: -</p> - -<div class="example"><pre> - #An entry that lists all the workers defined. For example: - worker.list=worker1,worker2 - - # Entries that define the host and port associated with these workers. - worker.worker1.host=localhost - worker.worker1.port=8009 - worker.worker1.type=ajp13 - - worker.worker2.host=otherhost - worker.worker2.port=8009 - worker.worker2.type=ajp13 -</pre></div> - -<p> -The above examples defined two workers, now we can use these workers to serve two different -contexts each with it's own worker. -Submitting requests to different workers is accomplished by using multiple Service directives -in the servlet configuration Object, each with a different path pattern parameter. -</p> - -<p> -For example, if we want to submit the <b>/examples</b> context to the worker named <b>worker1</b> and the -<b>/webpages</b> context to the worker named <b>worker2</b> we should use the following configuration: -</p> - -<div class="example"><pre> - <Object name="jknsapi"> - ObjectType fn=force-type type=text/plain - Service fn="jk_service" worker="worker1" path="/examples/*" - Service fn="jk_service" worker="worker2" path="/webpages/*" - Service fn="jk_service" worker="worker1" - </Object> -</pre></div> - -<p> -More informations on using and configuring workers in the <a href="../generic_howto/workers.html">Workers HowTo</a> -and in the <a href="../reference/workers.html">worker.properties configuration reference</a>. - -</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 NSAPI DLL redirector for Windows"><strong>Building NSAPI DLL redirector for Windows</strong></a></font></td></tr><tr><td><blockquote> -<p> -The redirector was developed using Visual C++ Ver.6.0, so having this environment is a prereq if you want -to perform a custom build. You should also have NES developer SDK - -The steps that you need to take are: -<ul> -<li> -Change directory to the nsapi plugins source directory. -</li> -<li> -Edit <b>nsapi.dsp</b> and update the include and library path to reflect your own Netscape server installation -(search for a <b>/I compiler</b> option and <b>/libpath</b> linker option) -</li> -<li> -Make the source with MSDEV -</li> -</ul> -<screendos> -<notedos>Change directory to the nsapi plugins source directory</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">cd c:\home\apache\jk\nsapi</b></nobr></code><br> -<notedos>Build the sources using MSDEV</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">MSDEV nsapi.dsp /MAKE ALL</b></nobr></code><br> -</screendos> -</p> -<p> -If msdev is not in your path, enter the full path to msdev.exe. -This will build both release and debug versions of the redirector plugin. -An alternative will be to open the nsapi workspace file (nsapi.dsw) 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 NSAPI so plugin redirector for Unix"><strong>Building NSAPI so plugin redirector for Unix</strong></a></font></td></tr><tr><td><blockquote> -<p> -The redirector requires either gcc (Linux) or gcc or the Sun cc compiler (Solaris). - -The steps that you need to take are: -<ul> -<li> -Change directory to the nsapi plugins source directory (src/native). -</li> -<li> -configure for Netscape/iPlanet/SunONE webserver. -</li> -<li> -Change directory to the nsapi netscape directory (./netstape). -</li> -<li> -Set environment variables JAVA_HOME resp. SUITSPOT_HOME to the location of your Java installation -resp. Netscape server installation. Depending on the web server version, you must add the subdirectory -"plugins" to SUITSPOT_HOME. -The variable is correct, if the file $SUITSPOT_HOME/include/nsapi.h exists. -</li> -<li> -Edit <b>Makefile.solaris</b> resp. <b>Makefile.linux</b> and update the variables according to your needs. -In the Solaris Makefile, you need to switch the commented lines in order to use the Sun compiler cc -instead of GNU gcc. -</li> -<li> -Make the source with gmake. -</li> -</ul> -<screendos> -<notedos>Change directory to the nsapi plugins source directory</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">cd /usr/local/src/tomcat-connectors-xxx-src/native</b></nobr></code><br> -<notedos>configure for Netscape/iPlanet/SunONE webserver</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">./configure --enable-netscape</b></nobr></code><br> -<notedos>Change directory to the nsapi netscape directory</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">cd netscape</b></nobr></code><br> -<notedos>Set JAVA_HOME (ksh example)</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">export JAVA_HOME=/path/to/my/java</b></nobr></code><br> -<notedos>Set SUITSPOT_HOME (ksh example)</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">export SUITSPOT_HOME=/path/to/my/netscape/server</b></nobr></code><br> -<notedos>Edit the Makefile</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">vi Makefile.solaris</b></nobr></code><br> -<notedos>Make the source with gmake</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">gmake -f Makefile.solaris</b></nobr></code><br> -</screendos> -</p> -<p> -After the build, you will have the required nsapi_redirector.so plugin. -</p> -</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em> - Copyright © 1999-2011, Apache Software Foundation - </em></font></div></td></tr></table></body></html>
\ No newline at end of file diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/apache.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/apache.html deleted file mode 100644 index ab972c65..00000000 --- a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/apache.html +++ /dev/null @@ -1,1123 +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><!--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"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></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> - ... - <Engine ...> - ... - <Listener className="org.apache.jk.config.ApacheConfig" modJk="/path/to/mod_jk.so" /> - ... - </Engine> - ... -</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 <IfModule directive> (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 <VirtualHost> 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 - <VirtualHost *:80> - 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/ - - <Directory "/home/dataxxx"> - Options Indexes MultiViews - AllowOverride None - Order allow,deny - Allow from all - </Directory> - - JkMount /* myssys-xxx - - </VirtualHost> -</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:\></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:\></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:\></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:\></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:\></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:\></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:\></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:\></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">===></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> -<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> -</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">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">===></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><em 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> -<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 © 1999-2011, Apache Software Foundation - </em></font></div></td></tr></table></body></html>
\ No newline at end of file diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/iis.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/iis.html deleted file mode 100644 index 498b71f0..00000000 --- a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/iis.html +++ /dev/null @@ -1,684 +0,0 @@ -<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Webserver HowTo - IIS 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"><meta name="author" value="Yoav Shapira"><meta name="email" value="yoavs@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Webserver HowTo</h1><h2>IIS HowTo</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></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 set up IIS to cooperate with Tomcat. -</p> - -<p> -Normally IIS can not execute Servlets and Java Server Pages (JSPs), -configuring IIS to use the JK ISAPI redirector plugin will let IIS send servlet and -JSP requests to Tomcat (and this way, serve them to clients). -</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/workers.html">workers.properties</a>, -<a href="../../reference/uriworkermap.html">uriworkermap</a> -and <a href="../../reference/iis.html">IIS</a>. -</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>c:\tomcat</b>. -A worker is defined to be a tomcat process that accepts work from the IIS 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 IIS-Tomcat redirector was developed and tested on: -<ul> -<li> -WinNT4.0-i386 SP4/SP5/SP6a (should be able to work with other service packs), Win2K and WinXP and Win98 -</li> -<li> -IIS4.0 and PWS4.0 (numerous people have working IIS 5 and IIS 6 configurations) -</li> -<li> -Tomcat 3.2 and later, Tomcat 4.x, Tomcat 5 and 5.5 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="IIS 5 and 6 Notes"><strong>IIS 5 and 6 Notes</strong></a></font></td></tr><tr><td><blockquote> -<p> -There are extra steps you need to take for configuring Tomcat with IIS 5 and 6. Please see the appropriate links from -<a href="http://wiki.apache.org/tomcat/Tomcat/Links">Tomcat Useful Links</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="IIS 7 notes"><strong>IIS 7 notes</strong></a></font></td></tr><tr><td><blockquote> -<p> -There is a known bug in IIS that may result in incomplete log messages. See <a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=45769">bug 45769</a> -for further details. -</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> -<ol> -<li> -The IIS-Tomcat redirector is an IIS plugin (filter + extension), IIS load the redirector plugin and calls its -filter function for each in-coming request. -</li> -<li> -The filter then tests the request URL against a list of URI-paths held inside uriworkermap.properties, -If the current request matches one of the entries in the list of URI-paths, -the filter transfers the request to the extension. -</li> -<li> -The extension collects the request parameters and forwards them to the appropriate worker using the defined -protocol like <b>ajp13</b>. -</li> -<li> -The extension collects the response from the worker and returns it to the browser. -</li> -</ol> -</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="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote> -<p> -A pre-built version of the ISAPI redirector server plugin, isapi_redirect.dll, is available under -the win32/i386 directory of tomcat-connectors distribution. -For those using Netscape as your browser, try downloading a zip version of the file, if available. -There can be problems using Netscape to download DLL files. - -You can also build a copy locally from the source present in tomcat-connectors distribution. - -The Tomcat redirector requires three entities: - -<ul> -<li> -<b>isapi_redirect.dll</b> - The IIS server plugin, either obtain a pre-built DLL or build it yourself (see the build section). -</li> -<li> -<b><a href="../../reference/workers.html">workers.properties</a></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. -</li> -<li> -<b><a href="../../reference/uriworkermap.html">uriworkermap.properties</a></b> - A file that maps URL-Path patterns to workers. -A sample uriworkermap.properties can be found under the conf directory as well. -</li> -</ul> -</p> - -<p> -The installation includes the following parts: - -<ul> -<li> -Configuring the ISAPI redirector with a default /examples context and checking that you can serve servlets with IIS. -</li> -<li> -Adding more contexts to the configuration. -</li> -</ul> -</p> - -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuring the ISAPI Redirector"><strong>Configuring the ISAPI Redirector</strong></a></font></td></tr><tr><td><blockquote> -<p> -In this document I will assume that isapi_redirect.dll is placed in -<b>c:\tomcat\bin\win32\i386\isapi_redirect.dll</b> and -that the properties files which you created are in <b>c:\tomcat\conf</b>. -</p> -<p> -<ol> -<li> -In the registry, create a new registry key named -<b>"HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0"</b> -</li> -<li> -Add a string value with the name <b>extension_uri</b> and a value of <b>/jakarta/isapi_redirect.dll</b> -</li> -<li> -Add a string value with the name <b>log_file</b> and a value pointing to where you want your -log file to be (for example <b>c:\tomcat\logs\isapi.log</b>). -</li> -<li> -Add a string value with the name <b>log_level</b> and a value for your log level -(can be debug, info, error or emerg). -</li> -<li> -Add a string value with the name <b>worker_file</b> and a value which is the full path -to your workers.properties file (for example <b>c:\tomcat\conf\workers.properties</b>) -</li> -<li> -Add a string value with the name <b>worker_mount_file</b> and a value which is the full path -to your uriworkermap.properties file (for example <b>c:\tomcat\conf\uriworkermap.properties</b>) -</li> -<li> -Using the IIS management console, add a new virtual directory to your IIS/PWS web site. -The name of the virtual directory must be jakarta. -Its physical path should be the directory where you placed isapi_redirect.dll -(in our example it is c:\tomcat\bin\win32\i386). -While creating this new virtual directory assign it with execute access. -</li> -<li> -Using the IIS management console, add isapi_redirect.dll as a filter in your IIS/PWS web site. -The name of the filter should reflect its task (I use the name tomcat), -its executable must be our c:\tomcat\bin\win32\i386\isapi_redirect.dll. -For PWS, you'll need to use regedit and add/edit the <b>"Filter DLLs"</b> key under -<b>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters</b>. -This key contains a "," separated list of dlls (full paths) - -you need to insert the full path to isapi_redirect.dll. -</li> -<li> -If you're using IIS 6.0 you must also do the following: -<br> -Using the IIS management console, add the Jakarta Isapi Redirector to the Web -Service Extensions. -<ol> -<li>Right-click on Web Service Extensions and choose Add a new Web Service -Extension.</li> -<li>Enter tomcat for the Extension Name.</li> -<li>Add the isapi_redirect.dll to the required files.</li> -<li>Check the Set extension status to Allowed.</li> -<li>Click on OK.</li> -</ol> -</li> -<li> -Restart IIS (stop + start the IIS service), make sure that the tomcat filter is marked with a green up-pointing arrow. -Under Win98 you may need to <b>cd WINDOWS\SYSTEM\inetsrv</b> and type PWS /stop -( the DLL and log files are locked - even if you click the stop button, -PWS will still keep the DLLs in memory. ). Type pws to start it again. -</li> -</ol> -</p> -<p> -That's all, you should now start Tomcat and ask IIS to serve you the /examples context. -Try <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a> for example and -execute some of the JSP examples. -</p> -<p> -If this does not work successfully, refer to the Troubleshooting section below for help on correcting the problem. -</p> - -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Adding additional Contexts"><strong>Adding additional Contexts</strong></a></font></td></tr><tr><td><blockquote> -<p> -The examples context is useful for verifying your installation, -but you will also need to add your own contexts. Adding a new context requires two operations: -</p> -<p> -<ol> -<li> -Adding the context to Tomcat (I am not going to talk about this). -</li> -<li> -Adding the context to the ISAPI redirector. -</li> -</ol> -</p> -<p> -Adding a context to the ISAPI redirector is simple, all you need to do is to edit -your uriworkermap.properties and to add a line that looks like: -</p> - -<div class="example"><pre> - /context/*=worker_name -</pre></div> - -<p> -Workers and their name are defined in workers.properties, by default workers.properties comes -with a single pre-configured worker named <b>"defworker"</b> so you can use it. -As an example, if you want to add a context named "shop", the line that you should add to -uriworkermap.properties will be: -</p> - -<div class="example"><pre> - /shop/*=defworker -</pre></div> - -After saving uriworkermap.properties restart IIS and it will serve the new context. -<p> -The above should be all you need for IIS to pass through to Tomcat any request for any URI which corresponds -to a Tomcat context (webapp). -</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="Advanced Context Configuration"><strong>Advanced Context Configuration</strong></a></font></td></tr><tr><td><blockquote> -<p> -If your webiste is very busy (more than 100 requests/second, or more than 100 simultaneous client connections), -it might sometimes be desirable to have IIS serve static content (html, gif, jpeg etc.) directly, -even if these files are part of a context served by Tomcat. Allowing IIS to serve such files directly may - avoid the small overhead consisting of passing the request to Tomcat via the redirector, and may free up - Tomcat somewhat, by using it only to process requests that only Tomcat can handle (e.g. requests to JSP pages and java servlets). -</p> -<p> -For example, consider the html and gif files in the examples context : you could serve these files directly -with IIS; there is no need to serve them from the Tomcat process. -</p> -<p><font color="#ff0000">However, you should be very careful when you implement the following configuration style, because by doing so you are -in fact providing a "back-door" to IIS, and allowing it to serve files out of a Tomcat context without Tomcat's knowledge, -thus bypassing any security -restrictions which Tomcat itself and the Tomcat context (webapp) may place on those files.</font></p> -<p> -Making IIS serve static files that are part of the Tomcat contexts requires the following: -<ol> -<li> -Configuring IIS to know about the Tomcat contexts -</li> -<li> -Configuring the redirector to leave the static files for IIS -</li> -</ol> -</p> - -<p> -Adding a Tomcat context to IIS requires the addition of a new IIS virtual directory that covers the Tomcat context. -For example adding a /example IIS virtual directory that covers the c:\tomcat\webapps\examples directory. -</p> - -<p> -Configuring the redirector is somewhat harder, you will need to specify the exact -URL-Path pattern(s) which you want Tomcat to handle (usually only JSP files and servlets). -This requires a change to the uriworkermap.properties : - -<div class="example"><pre> - For the examples context it requires to replace the following line - /examples/*=defworker - with the following two lines - /examples/*.jsp=defworker - /examples/servlet/*=defworker -</pre></div> -</p> - -<p> -As you can see the second configuration is more explicit, it actually instruct the redirector -to redirect only requests to resources under /examples/servlet/ and resources under /examples/ -whose name ends with .jsp. -</p> - -<p> -You can even be more explicit and provide lines such as: - -<div class="example"><pre> - /example/servletname=defworker -</pre></div> -</p> - -<p> -that instructs the redirector to redirect all requests whose URL-path matches the leading string "/example/servletname" -to the worker named defworker. -</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="Protecting the content of your Tomcat contexts"><strong>Protecting the content of your Tomcat contexts</strong></a></font></td></tr><tr><td><blockquote> -<p>Once again, be aware that by allowing IIS to access the content of your Tomcat context directly, you are -potentially bypassing Tomcat's protection of that content. You should thus make sure to protect this content -at the IIS level if needed, by using the corresponding IIS management console functions. -</p> -<p> -In particular, each servlet application (context) has a special directory named WEB-INF, -which contains sensitive configuration data and Java classes, and which should always be kept hidden from web users. -Using the IIS management console it is possible to protect the WEB-INF directory from user access, but considering that -this is a general requirement, and considering that it is easy to forget to implement this protection -at the IIS level, the redirector plugin does it automatically for you, and it will reject any request -which contains WEB-INF in its URL-path. -</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="Advanced Worker Configuration"><strong>Advanced Worker Configuration</strong></a></font></td></tr><tr><td><blockquote> -<p> -Sometimes you may want to serve different contexts with different Tomcat processes -(for example to spread the load among different machines). -To achieve such a goal you will need to define several workers and assign each context to its own worker. -</p> -<p> -Defining additional workers is done in the workers.properties file. This file includes two types of entries: -</p> - -<p> -<div class="example"><pre> - # An entry that lists all the workers defined - worker.list=worker1, worker2 - # Entries that define the host and port associated with each of these workers - worker.worker1.host=localhost - worker.worker1.port=8009 - worker.worker1.type=ajp13 - worker.worker2.host=otherhost - worker.worker2.port=8009 - worker.worker2.type=ajp13 -</pre></div> -</p> - -<p> -The above example defined two workers, now we can use these workers to serve two different contexts -each with its own worker: -<div class="example"><pre> - example uriworkermap.properties fragment - /examples/*=worker1 - /webpages/*=worker2 -</pre></div> -</p> - -<p> -As you can see the <b>examples</b> context is served by <b>worker1</b> while the -<b>webpages</b> context is served by <b>worker2</b>. -</p> - -<p> -More information on using and configuring workers in the <a href="../../generic_howto/workers.html">Workers HowTo</a> -and in the <a href="../../reference/workers.html">worker.properties configuration reference</a>. -</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 ISAPI redirector"><strong>Building ISAPI redirector</strong></a></font></td></tr><tr><td><blockquote> -<p> -The redirector was developed using Visual C++ Ver.6.0, so having this environment is a prerequisite if you want -to perform a custom build. You should also have the IIS developer SDK. - -The steps that you need to take are: -<ul> -<li> -Change directory to the isapi plugins source directory. -</li> -<li> -Make the source with MSDEV -</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">Change directory to the isapi plugins source directory</div><code><nobr><em class="screen">c:\></em><b class="screen">cd c:\home\apache\jk\iis</b></nobr></code><br><div class="screen">Build the sources using MSDEV</div><code><nobr><em class="screen">c:\></em><b class="screen">MSDEV isapi.dsp /MAKE ALL</b></nobr></code><br></td></tr></table></div></p> -</p> -<p> -If msdev is not in your path, enter the full path to msdev.exe. -This will build both release and debug versions of the redirector plugin. -An alternative will be to open the isapi workspace file (isapi.dsw) 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="Troubleshooting"><strong>Troubleshooting</strong></a></font></td></tr><tr><td><blockquote> -<p> -It is easy to have the ISAPI redirector not work the first time you try to install it. -</p> -<p> -If this happens to you, here are some steps to follow to try to correct the problem. -</p> -<p> -These steps aren't guaranteed to cover all possible problems, -but they should help find the typical mistakes. -</p> -<p> -If you make any corrections during these steps, restart the IIS service as described above in the last step -of the installation, then retry the step. -</p> - -<p>To enable error tracking, make sure web site activity is being logged. -For PWS 4.0 make sure "Save Web Site Activity Log" is checked in the Advanced Options of the Personal Web Manager. -</p> - -<p> -Note: These steps assume your <b>worker_mount_file</b> setting points to an unmodified copy of the -<b>uriworkermap.properties</b> file.<br> -Results may be misleading if <b>worker_mount_file</b> points to a modified <b>uriworkermap.properties</b> -or the <b>uriworkermap.properties-auto</b> file.<br> -It is also assumed that the <b>"/examples" context</b> works correctly if you access Tomcat directly. -</p> - -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Win98"><strong>Win98</strong></a></font></td></tr><tr><td><blockquote> -<p> -Start the IIS service and Tomcat. -</p> -<p> -Check for the presence of the ISAPI redirector log file you specified in the log_file setting. -If not found, verify the following: -</p> -<ul> -<li> -Check the "Filter DLLs" setting in the "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters" -key and make sure the path is correct. -</li> -<li> -Check the spelling of the "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0" key. -Case isn't important, but an incorrect letter will prevent the isapi_redirect.dll from finding its registry settings. -</li> -<li> -Check the log_file setting for typos, name and data. Also insure the directory in which the log file will appear already exists. -</li> -If the above are set correctly, the ISAPI redirector should be able to create the log file. -</ul> -<p> -Invoke the URL <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a> -in your browser. -Case is important in Tomcat. The characters following "localhost" in the URL must be lower case. -If the page fails to appear, stop the IIS service (required to view the IIS log file). -Then examine the last line in the IIS log file in found in SYSTEM/LogFiles/W3SVC1 : -</p> -<p> -If the last line contains: -</p> -<div class="example"><pre> - GET "/examples/jsp/index.html HTTP/1.1" 404 -</pre></div> -<p> -then the ISAPI redirector is not recognising that it should be handling requests for the "/examples" context. -Check the following: -</p> -<ul> -<li> -Check the extension_uri name for typos. -</li> -<li> -Check the worker_file setting for typos, name and data. -</li> -<li> -Check the worker_mount_file setting typos, name and data. -</li> -If these are set correctly, the ISAPI redirector should recognise that it should handle requests for the "/examples" context. -</ul> - -<p>If the last line contains something like: -</p> - -<div class="example"><pre> - GET "/jakarta/isapi_redirect.dll HTTP1.1" -</pre></div> - -<p> -then the ISAPI redirector is recognising that it should handle the request, -but is not successful at getting Tomcat to service the request. -</p> - -<p> -You should check the HTTP error code following GET "/..." : -</p> - -<div class="example"><pre> - Error 404 - GET "/..." 404 -</pre></div> - -<ul> -<li> -Make sure you entered the URL correctly. -</li> -<li> -Make sure the virtual directory created was called "jakarta". -It should display in Personal Web Manager as "/jakarta" (without the quotes). -</li> -<li> -Make sure the extension_uri data begins with "/jakarta/" (without the quotes). -</li> -</ul> - -<div class="example"><pre> - Error 500 - GET "/..." 500 -</pre></div> - -<ul> -<li> -Make sure that "isapi_redirect.dll" follows "/jakarta/" in the extension_uri setting. -</li> -<li> -Check the workers.properties file and make sure the port setting for worker.ajp12.port is the same as the port specified in the server.xml for the "Apache AJP12 support". -</li> -</ul> - -<div class="example"><pre> - Error 200 or 403 - GET "/..." 200 - GET "/..." 403 -</pre></div> - -<ul> -<li> -Make sure you have checked Execute Access -for the jakarta virtual directory in the Advanced Options of the Personal Web Manager. -</li> -</ul> - -<p> -If the above settings are correct, the index.html page should appear in your browser. -You should also be able to click the Execute links to execute the JSP examples. -</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="WinNT/Win2K/WinXP"><strong>WinNT/Win2K/WinXP</strong></a></font></td></tr><tr><td><blockquote> -<p> -Start the World Wide Web Publishing Service and Tomcat. -</p> -<p> -Check for the presence of the ISAPI redirector log file you specified in the log_file setting. -If not found, check the following: -</p> -<ul> -<li> -Check the "executable" you set for the filter in the IIS Management Console and make sure the path is correct. -</li> -<li>Check the spelling of the "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0" key. -Case isn't important, but an incorrect letter will prevent the isapi_redirect.dll from finding its registry settings. -</li> -<li> -Check the log_file setting for typos, name and data. Also insure the directory in which the log file will appear already exists. -</li> -If the above are set correctly, the ISAPI redirector should be able to create the log file. -</ul> - -<p> -Check the tomcat filter you added and make sure its status shows a green upward-pointing arrow. -If not, check the following: -</p> -<ul> -<li> -Check the worker_file setting for typos, name and data. -</li> -<li> -Check the worker_mount_file setting typos, name and data. -</li> -If the above are set correctly, the green upward-pointing arrow should appear, even if the other settings are wrong. -</ul> - -<p> -Invoke the URL <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a> -in your browser. Case is important in Tomcat. The characters following "localhost" in the URL must be lower case. -If the page fails to appear, examine the last line in the IIS server log file in found in SYSTEM32/LogFiles/W3SVC1. -</p> - -<p> -The last line should contain something like: GET "/jakarta/isapi_redirect.dll HTTP1.1", -which indicates the ISAPI redirector is recognising that it should handle the request. -</p> - -<p> -You should check the HTTP error code following GET "/..." : -</p> - -<div class="example"><pre> - Error 404 - GET "/..." 404 -</pre></div> - -<ul> -<li> -Make sure you entered the URL correctly. -</li> -</ul> - -<div class="example"><pre> - Error 500 - GET "/..." 500 -</pre></div> - -<ul> -<li> -Make sure the virtual directory created was called "jakarta". -</li> -<li> -Make sure that the extension_uri setting is correct. -</li> -<li> -Check the workers.properties file and make sure the port setting for worker.ajp12.port is the same as the port specified in the server.xml for the "Apache AJP12 support". -</li> -</ul> - -<div class="example"><pre> - Error 200 or 403 - GET "/..." 200 - GET "/..." 403 -</pre></div> - -<ul> -<li> -Make sure you have checked Execute Access for the jakarta virtual directory in the -Advanced Options of the Personal Web Manager. -</li> -</ul> - -<p> -If the above settings are correct, the index.html page should appear in your browser. -You should also be able to click the Execute links to execute the JSP examples. -</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-2011, Apache Software Foundation - </em></font></div></td></tr></table></body></html>
\ No newline at end of file diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/nes.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/nes.html deleted file mode 100644 index efb8f5a5..00000000 --- a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/nes.html +++ /dev/null @@ -1,482 +0,0 @@ -<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Webserver HowTo - SunOne -- Netscape/iPlanet HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Jim Jagielski"><meta name="email" value="jim@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shachor@il.ibm.com"><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Webserver HowTo</h1><h2>SunOne -- Netscape/iPlanet HowTo</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></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 set up Sun ONE Web Server previously known as -Netscape web servers to cooperate with Tomcat. -</p> - -<p> -Normally the Sun ONE Web Servers come with their own Servlet engine, -but you can also configure them to send servlet and JSP requests to Tomcat -using the NSAPI redirector plugin. -</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. -</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>c:\tomcat</b>. -A worker is defined to be a tomcat process that accepts work from the Sun ONE Web 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 NSAPI-Tomcat redirector was developed and tested on: -<ul> -<li> -WINNT 2000/XP/2003 (should be able to work with other service packs) and some Unixes -</li> -<li> -Sun ONE Web Server 6.1 -</li> -<li> -Tomcat 4.1.x , Tomcat 5.0.x and Tomcat 5.5.x -</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.0.x, 4.1.x, 5.0.x, 5.5.x and 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> -<ol> -<li> -The NSAPI-Tomcat redirector is an Netscape service step plugin, -Netscape load the redirector plugin and calls its service handler -function for request that are assigned to the "servlet" configuration object. -</li> -<li> -For each in-coming request Netscape will execute the set of NameTrans directives -that we added to obj.conf, the assign-name function will check if it's from -parameter matches the request URL. -</li> -<li> -If a match is found, assign-name will assign the servlet object name to the request. -This will cause Netscape to send the request to the servlet configuration object. -</li> -<li> -Netscape will execute our jk_service extension. The extension collects the -request parameters and forwards them to the appropriate worker using the ajp13 protocol -(the worker="defworker" parameter in jk_service inform it that the worker for this request is named <b>defworker</b>). -the workers properties files, <b>workers.properties</b>, will indicate that defworker use ajp13 protocol. -</li> -<li> -The extension collects the response from the worker and returns it to the browser. -</li> -</ol> -</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="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote> -<p> -A pre-built version of the NSAPI redirector, nsapi_redirect.dll, may be available under -the win32/i386 directory of tomcat-connectors distribution. -For those using Netscape as your browser, try downloading a zip version of the file, if available. - -You can also build a copy locally from the source present in tomcat-connectors distribution. - - -The Tomcat redirector requires two entities: -<ul> -<li> -nsapi_redirect.dll (Windows) -or- nsapi_redirector.so (Unix) - The NSAPI server plugin, either obtain a pre-built DLL/so or build it yourself -(see the build section). -</li> -<li> -workers.properties - 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. -</li> -</ul> - -The installation includes the following parts: - -<ul> -<li> -Configuring the NSAPI redirector with a default /examples context and checking that you can serve servlets -with Netscape. -</li> -<li> -Adding more contexts to the configuration. -</li> -</ul> - -</p> -</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuring the NSAPI Redirector"><strong>Configuring the NSAPI Redirector</strong></a></font></td></tr><tr><td><blockquote> -<p> -In this document we'll assume that nsapi_redirect.dll is placed in -<b>c:\jk\lib\nsapi_redirect.dll</b>, the properties file is in<b>c:\jk\conf</b> -and you created a log directory <b>c:\jk\logs</b> -</p> - -<ul> -<li> -If the built in servlet support is working disable it. -</li> -<li> -Add the redirector plugin into the Netscape server configuration. -Edit your server <b>magnus.conf</b> and add the following lines: -</li> -</ul> - -<div class="example"><pre> - - Init fn="load-modules" funcs="jk_init,jk_service" shlib="c:/jk/lib/nsapi_redirect.dll" shlib_flags="(global|now)" - Init fn="jk_init" worker_file="c:/jk/conf/workers.properties" log_level="debug" log_file="c:/jk/logs/nsapi.log" shm_file="c:/jk/logs/jk_shm" -</pre></div> -<ul> -<li> -Edit your server <b>obj.conf</b> and add the following lines: -</li> -</ul> -<div class="example"><pre> - - - In the default object NameTrans section - <Object name="default"> - - NameTrans fn="assign-name" from="/servlets-examples(|/*)" name="jknsapi" - NameTrans fn="assign-name" from="/jsp-examples(|/*)" name="jknsapi" - .... - </Object> - - Create a new configuration object by adding the following lines to the end of the obj.conf file - - <Object name="jknsapi"> - ObjectType fn=force-type type=text/plain - Service fn="jk_service" method="*" worker="worker1" - </Object> -</pre></div> - -<ul> -<li> -Edit your worker definition file <b>workers.properties</b>. You should at least choose a connection pool size: -</li> -</ul> - -<div class="example"><pre> - #An entry that lists all the workers defined. For example: - worker.list=worker1 - - # Entries that define the host and port associated with these workers. - worker.worker1.host=localhost - worker.worker1.port=8009 - worker.worker1.type=ajp13 - worker.worker1.connection_pool_size=50 -</pre></div> - -<ul> -<li> -Restart Web Server (stop and start the server) -</li> -</ul> - -<p> -That's all, now you should start tomcat and ask for http://server:port/servlets-examples/ -</p> -<p><font color="#ff0000"> -The file <b>obj.conf</b> seems to be sensitive to leading white space in lines, especially in -the <b>Object</b> element. Make sure you have no leading white space (no indentation) -on any line of this file. -</font></p> - -<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Adding additional Contexts"><strong>Adding additional Contexts</strong></a></font></td></tr><tr><td><blockquote> -<p> -The examples context is useful for verifying your installation, but you will also need to add your own contexts. -Adding a new context requires two operations: -</p> -<ul> -<li> -Adding the context to Tomcat (I am not going to talk about this). -</li> -<li> -Assigning the NSAPI redirector to handle this context. -</li> -</ul> - -<p> -Assigning the NSAPI redirector to handle this context is simple, -all you need to do is to edit <b>obj.conf</b> and add a NameTrans line that looks like: -</p> - -<div class="example"><pre> - NameTrans fn="assign-name" from="/<context name>/*" name="jknsapi" -</pre></div> - -<p> -After saving <b>obj.conf</b> restart Netscape and it will serve the new context. -</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="Advanced Context Configuration"><strong>Advanced Context Configuration</strong></a></font></td></tr><tr><td><blockquote> -<p> -Sometimes it is better to have Netscape serve the static pages (html, gif, jpeg etc.) -even if these files are part of a context served by Tomcat. For example, consider the html and gif files in the examples context, there is no need to serve them from the Tomcat process, Netscape will suffice. -</p> -<p> -Making Netscape serve static files that are part of the Tomcat contexts requires the following: -</p> -<ul> -<li> -Configuring Netscape to know about the Tomcat contexts -</li> -<li> -Make sure that the WEB-INF directory is protected from access. -</li> -<li> -Configuring Netscape to assign the NSAPI redirector only specific requests that requires JSP/Servlet handling. -</li> -</ul> - -<p> -Adding a Tomcat context to Netscape requires the addition of a new Netscape virtual directory -that covers the Tomcat context. -</p> - -<p> -For example, adding a /example Netscape virtual directory that -covers the <b>c:\tomcat\webapps\examples</b> directory. -</p> - -<p> -To add a new virtual directory add the following line to your <b>obj.conf</b>: -</p> - -<div class="example"><pre> - NameTrans fn=pfx2dir from=/examples dir="c:/tomcat/webapps/examples" -</pre></div> - -<p> -WEB-INF protection requires some explanation; Each servlet application (context) has a special directory named <b>WEB-INF</b>, -this directory contains sensitive configurations data and Java classes and must be kept hidden from web users. -WEB-INF can be protected by adding the following line to the PathCheck section in the default configuration object: -</p> - -<div class="example"><pre> - PathCheck fn="deny-existence" path="*/WEB-INF/*" - - This line instructs the Netscape server to reject any request with a URL that contain the path /WEB-INF/. -</pre></div> - -<p> -Configuring Netscape to assign the NSAPI redirector only specific requests is somewhat harder, -you will need to specify the exact URL-Path pattern(s) that you want Tomcat to handle -(usually only JSP files and servlets). -</p> - -<p> -This requires a change to NameTrans portion of <b>obj.conf</b>. -</p> - -<div class="example"><pre> - For the examples context it requires to replace the following line: - - NameTrans fn="assign-name" from="/examples/*" name="jknsapi" - - with the following two lines: - - NameTrans fn="assign-name" from="/examples/jsp/*.jsp" name="jknsapi" - NameTrans fn="assign-name" from="/examples/servlet/*" name="jknsapi" -</pre></div> - -<p> -As you can see the second configuration is more explicit, it actually instructs -Netscape to assign the redirector with only requests to resources under -<b>/examples/servlet/</b> and resources under <b>/examples/</b> whose name ends with <b>.jsp</b>. -</p> - -<p> -You can be even more explicit and provide lines such as: -</p> - -<div class="example"><pre> - NameTrans fn="assign-name" from="/examples/servletname" name="jknsapi" - - Instructs Netscape to assign the redirector request whose URL-Path equals /example/servletname -</pre></div> - -</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="Advanced Worker Configuration"><strong>Advanced Worker Configuration</strong></a></font></td></tr><tr><td><blockquote> -<p> -Sometimes you want to serve different contexts with different Tomcat processes -(for example to spread the load among different machines). -To achieve such goal you will need to define several workers and assign each context with its own worker. -</p> - -<p> -Defining workers is done in <b>workers.properties</b>, this file includes two types of entries: -</p> - -<div class="example"><pre> - #An entry that lists all the workers defined. For example: - worker.list=worker1,worker2 - - # Entries that define the host and port associated with these workers. - worker.worker1.host=localhost - worker.worker1.port=8009 - worker.worker1.type=ajp13 - - worker.worker2.host=otherhost - worker.worker2.port=8009 - worker.worker2.type=ajp13 -</pre></div> - -<p> -The above examples defined two workers, now we can use these workers to serve two different -contexts each with it's own worker. -Submitting requests to different workers is accomplished by using multiple Service directives -in the servlet configuration Object, each with a different path pattern parameter. -</p> - -<p> -For example, if we want to submit the <b>/examples</b> context to the worker named <b>worker1</b> and the -<b>/webpages</b> context to the worker named <b>worker2</b> we should use the following configuration: -</p> - -<div class="example"><pre> - <Object name="jknsapi"> - ObjectType fn=force-type type=text/plain - Service fn="jk_service" worker="worker1" path="/examples/*" - Service fn="jk_service" worker="worker2" path="/webpages/*" - Service fn="jk_service" worker="worker1" - </Object> -</pre></div> - -<p> -More informations on using and configuring workers in the <a href="../../generic_howto/workers.html">Workers HowTo</a> -and in the <a href="../../reference/workers.html">worker.properties configuration reference</a>. - -</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 NSAPI DLL redirector for Windows"><strong>Building NSAPI DLL redirector for Windows</strong></a></font></td></tr><tr><td><blockquote> -<p> -The redirector was developed using Visual C++ Ver.6.0, so having this environment is a prereq if you want -to perform a custom build. You should also have NES developer SDK - -The steps that you need to take are: -<ul> -<li> -Change directory to the nsapi plugins source directory. -</li> -<li> -Edit <b>nsapi.dsp</b> and update the include and library path to reflect your own Netscape server installation -(search for a <b>/I compiler</b> option and <b>/libpath</b> linker option) -</li> -<li> -Make the source with MSDEV -</li> -</ul> -<screendos> -<notedos>Change directory to the nsapi plugins source directory</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">cd c:\home\apache\jk\nsapi</b></nobr></code><br> -<notedos>Build the sources using MSDEV</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">MSDEV nsapi.dsp /MAKE ALL</b></nobr></code><br> -</screendos> -</p> -<p> -If msdev is not in your path, enter the full path to msdev.exe. -This will build both release and debug versions of the redirector plugin. -An alternative will be to open the nsapi workspace file (nsapi.dsw) 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 NSAPI so plugin redirector for Unix"><strong>Building NSAPI so plugin redirector for Unix</strong></a></font></td></tr><tr><td><blockquote> -<p> -The redirector requires either gcc (Linux) or gcc or the Sun cc compiler (Solaris). - -The steps that you need to take are: -<ul> -<li> -Change directory to the nsapi plugins source directory (src/native). -</li> -<li> -configure for Netscape/iPlanet/SunONE webserver. -</li> -<li> -Change directory to the nsapi netscape directory (./netstape). -</li> -<li> -Set environment variables JAVA_HOME resp. SUITSPOT_HOME to the location of your Java installation -resp. Netscape server installation. Depending on the web server version, you must add the subdirectory -"plugins" to SUITSPOT_HOME. -The variable is correct, if the file $SUITSPOT_HOME/include/nsapi.h exists. -</li> -<li> -Edit <b>Makefile.solaris</b> resp. <b>Makefile.linux</b> and update the variables according to your needs. -In the Solaris Makefile, you need to switch the commented lines in order to use the Sun compiler cc -instead of GNU gcc. -</li> -<li> -Make the source with gmake. -</li> -</ul> -<screendos> -<notedos>Change directory to the nsapi plugins source directory</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">cd /usr/local/src/tomcat-connectors-xxx-src/native</b></nobr></code><br> -<notedos>configure for Netscape/iPlanet/SunONE webserver</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">./configure --enable-netscape</b></nobr></code><br> -<notedos>Change directory to the nsapi netscape directory</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">cd netscape</b></nobr></code><br> -<notedos>Set JAVA_HOME (ksh example)</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">export JAVA_HOME=/path/to/my/java</b></nobr></code><br> -<notedos>Set SUITSPOT_HOME (ksh example)</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">export SUITSPOT_HOME=/path/to/my/netscape/server</b></nobr></code><br> -<notedos>Edit the Makefile</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">vi Makefile.solaris</b></nobr></code><br> -<notedos>Make the source with gmake</notedos> -<code><nobr><em class="screen">c:\></em><b class="screen">gmake -f Makefile.solaris</b></nobr></code><br> -</screendos> -</p> -<p> -After the build, you will have the required nsapi_redirector.so plugin. -</p> -</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em> - Copyright © 1999-2011, Apache Software Foundation - </em></font></div></td></tr></table></body></html>
\ No newline at end of file |