Author: markt Date: Fri Nov 17 14:22:15 2017 New Revision: 1815568 URL: http://svn.apache.org/viewvc?rev=1815568&view=rev Log: Update the installation instructions for the ISAPI redirector.
Modified: tomcat/jk/trunk/xdocs/webserver_howto/iis.xml Modified: tomcat/jk/trunk/xdocs/webserver_howto/iis.xml URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/xdocs/webserver_howto/iis.xml?rev=1815568&r1=1815567&r2=1815568&view=diff ============================================================================== --- tomcat/jk/trunk/xdocs/webserver_howto/iis.xml (original) +++ tomcat/jk/trunk/xdocs/webserver_howto/iis.xml Fri Nov 17 14:22:15 2017 @@ -77,61 +77,23 @@ A worker is defined to be a tomcat proce <subsection name="Supported Configuration"> <p> -The IIS to Tomcat redirector works for: +The IIS to Tomcat redirector is supported for: +</p> <ul> -<li> -WinNT4.0-i386 SP4/SP5/SP6a (should be able to work with other service packs), Win98, WinXP, Win2K, -and probably also Win2K3, Vista and Windows 7. -</li> -<li> -IIS4.0 and PWS4.0, IIS 5 to IIS 7. -</li> -<li> -Tomcat 3.2 to Tomcat 8. -</li> +<li>IIS running on Windows 7 or later</li> +<li>IIS running on Windows Server 2008 SP2 or later</li> +<li>Tomcat 7 or later</li> </ul> -</p> - -<p> -The mod_jk module uses the AJP protocol to send requests to the Tomcat containers. -The AJP version typically used is <b>ajp13</b>. -</p> -</subsection> - -<subsection name="IIS 5 and 6 Notes"> -<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> -</subsection> - -<subsection name="IIS 7 notes"> -<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> -</subsection> - -<subsection name="64 Bit notes"> -<p> -In a 64 Bit environment - at least for IIS 7 - the used IIS Application Pool -should have "Enable 32-bit Applications" set to "False". Otherwise the redirector will -not be called and returns an http code 404. If you think, the 32bit version of -isapi_redirect.dll would do the job instead, you will get an http code 500, -because the library is not loadable into a 64 Bit IIS. -</p> -</subsection> - -<subsection name="Who supports AJP protocols?"> <p> -Tomcat supports ajp13 since Tomcat 3.2. -Others servlet engines such as <b>Jetty</b> or <b>JBoss</b> also support the ajp13 protocol +The redirector may work with IIS running on older versions of Windows but such +configurations are not supported. </p> <p> -The <b>ajp12</b> protocol has been <b>deprecated</b> and you should no longer use it. -The <b>ajp14</b> protocol is considered experimental. +The mod_jk module uses the AJP protocol to send requests to the Tomcat +containers. The AJP version used is <b>ajp13</b>. All current versions Tomcat +support the ajp13 protocol. Others servlet engines such as <b>Jetty</b> and +<b>JBoss</b> also support the ajp13 protocol. </p> </subsection> @@ -140,20 +102,21 @@ The <b>ajp14</b> protocol is considered <p> <ol> <li> -The ISAPI redirector is a Microsoft IIS plugin (filter + extension). IIS loads the redirector plugin and calls its -filter function for each in-coming request. +The ISAPI redirector is a Microsoft IIS plugin (filter + extension). IIS loads +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. +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>. +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. +The extension collects the response from the worker and returns it to the +browser. </li> </ol> </p> @@ -163,23 +126,29 @@ The extension collects the response from <section name="Installation"> <p> -A pre-built version of the ISAPI redirector plugin, isapi_redirect.dll, is available under -the win32/i386 directory of the Tomcat Connectors distribution. +Pre-built versions of the ISAPI redirector plugin, isapi_redirect.dll, for +32-bit and 64-bit environments are available from the +<a href="https://tomcat.apache.org/download-connectors.cgi">Apache Tomcat +Connectors Downloads</a> page. -You can also build a copy locally from the Tomcat Connectors source distribution. +You can also build a copy locally from the Tomcat Connectors source +distribution. The ISAPI redirector requires three entities: <ul> <li> -<b>isapi_redirect.dll</b> - The ISAPI redirector for Microsoft IIS plugin, either obtain a pre-built DLL or build it yourself (see the build section). +<b>isapi_redirect.dll</b> - The ISAPI redirector for Microsoft IIS 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). +<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. +<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> @@ -190,7 +159,8 @@ The installation includes the following <ul> <li> -Configuring the ISAPI redirector with a default /examples context and checking that you can serve servlets with IIS. +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. @@ -198,15 +168,117 @@ Adding more contexts to the configuratio </ul> </p> -</section> +<subsection name="Configuring the ISAPI Redirector"> + +<p><i>These instructions have been written based on Windows Server 2012 R2. +Other versions should be broadly the same. As the installation process is tested +on other Windows versions, these instructions will be upadted to note any +version specific information.</i> +</p> -<section name="Configuring the ISAPI Redirector"> <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>. +These installation instructions have been tested with a default installation of +IIS plus ISAPI Extensions and Filters on a clean, fully patched OS installation +with Tomcat 9 installed in <b>C:\Program Files\Apache Software Foundation\Tomcat +9.0</b>. This is referred to as ${tomcat_home} for the remainder of this +document. +</p> + +<ol> +<li> +Create a directory <b>${tomcat_home}\isapi</b> +</li> +<li> +Allow the IIS process to create the ISAPI redirector log file. Enter the +following at a command prompt: +<source> +>icacls "C:\Program Files\Apache Software Foundation\Tomcat 9.0\isapi" /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)M +</source> +</li> +<li> +Download the appropriate (32-bit or 64-bit) isapi_redirect.dll for your +operating system and place it in <b>${tomcat_home}\isapi</b> +</li> +<li> +Create <b>${tomcat_home}\isapi\isapi_redirect.properties</b> to configure the ISAPI +redirctor. Configuration can also be performed via registry settings - see +below. The contents of this file should be: +<source> +extension_uri=/jakarta/isapi_redirect.dll +log_file=C:\Program Files\Apache Software Foundation\Tomcat 9.0\isapi\isapi_redirect.log +log_level=info +worker_file=C:\Program Files\Apache Software Foundation\Tomcat 9.0\isapi\workers.properties +worker_mount_file=C:\Program Files\Apache Software Foundation\Tomcat 9.0\isapi\uriworkermap.properties +</source> +Be careful Windows doesn't add a <b>.txt</b> extension to the file. +</li> +<li> +Create <b>${tomcat_home}\isapi\workers.properties</b> to configure the Tomcat +instances that requests will be passed to. For a single Tomcat instance on the +local machine the contents of this file should be: +<source> +worker.list=tomcat01 +worker.tomcat01.type=ajp13 +worker.tomcat01.host=localhost +worker.tomcat01.port=8009 +</source> +</li> +<li> +Create <b>${tomcat_home}\isapi\uriworkermap.properties</b> to configure which +requests will be passed to Tomcat. To expose the examples web application the +contents of this file should be: +<source> +/examples/*=tomcat01 +</source> +</li> +<li> +Using the IIS management console, add a new virtual directory to your IIS web +site. In a clean install, this will be the <b>Default Web Site</b>. The name of +the virtual directory must be <b>jakarta</b>. Its physical path should be the +directory where you placed <b>isapi_redirect.dll</b>. +</li> +<li> +Select the newly created vitual directory in the management console and then +double-click <b>Handler Mappings</b>. Select the (currently disabled) +<b>ISAPI-dll</b> entry and then click <b>Edit Feature Permissions</b> in the +action pane. In the dialog box that opens, select <b>Execute</b> so all three +permissions are selected. Click <b>OK</b> and <b>ISAPI-dll</b> should now be in +the enabled state. +</li> +<li> +Again using the IIS management console, add the ISAPI redirector as a filter to +your web site. Select your web site and then double-click <b>ISAPI Filters</b>. +From the action pane, click <b>Add...</b>. For the filter name use <b>tomcat</b> +and the executable should be the full path to <b>isapi_redirect.dll</b>. Once +configured, click <b>OK</b>. +</li> +<li> +Still using the IIS managament console configure the ISAPI redirector as +allowed. Select your server (not the web site) and then double-click on <b>ISAPI +and CGI Restrictions</b>. From the action pane, click <b>Add...</b>. Select the +isapi_redirect.dll, add a descripion (e.g. tomcat) and select the <b>Allow +extension path to execute</b> and then click <b>OK</b>. +</li> +<li> +Restart IIS (stop + start the IIS service). +</li> +</ol> + +<p> +That's all, you should now start Tomcat and ask IIS to serve you the /examples +context. Try <a href="http://localhost/examples/">http://localhost/examples/</a> +for example and execute some of the Servlet or JSP examples. </p> <p> +If this does not work successfully, refer to the Troubleshooting section below for help on correcting the problem. +</p> +</subsection> + +<subsection name="Registry configuration"> + +As an alternative to useing the <b>isapi_redirector.properties</b> file, the +ISAPI redirector may be configured via the registry. To do this, follow these +steps: <ol> <li> In the registry, create a new registry key named @@ -231,52 +303,26 @@ to your workers.properties file (for exa 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 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> + +</subsection> + +<subsection name="64 Bit notes"> <p> -That's all, you should now start Tomcat and ask IIS to serve you the /examples context. -Try <a href="http://localhost/examples/">http://localhost/examples/</a> for example and -execute some of the Servlet or JSP examples. +In a 64 Bit environment the used IIS Application Pool should have "Enable 32-bit +Applications" set to "False". To check this, select <b>Application Pools</b> in +the IIS management console, then right-click on the pool you are using and +select <b>Set Application Pool Defaults...</b>. <b>Enable 32-Bit +Applications</b> may be found in the <b>General</b> section. If this is not +configured correctly, the redirector will not be called and IIS will return an +HTTP code 404. </p> <p> -If this does not work successfully, refer to the Troubleshooting section below for help on correcting the problem. +You must use the 64-bit version of the ISAPI redirector on 64-bit operating +systems. If you attempt to use the 32bit version, you will get an HTTP code 500 +for every request because the library is not loadable into a 64-bit IIS. </p> +</subsection> <subsection name="Adding additional Contexts"> <p> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org