This document explains how to set up the ISAPI redirector for IIS to cooperate with Tomcat.
Normally IIS can not execute Servlets and Java Server Pages (JSPs). Configuring IIS to use the ISAPI redirector plugin will let IIS send servlet and JSP requests to Tomcat (and this way, serve them to clients).
It is recommended that you also read the Workers HowTo 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 workers.properties, uriworkermap and IIS.
Document Conventions and Assumptions
${tomcat_home} is the root directory of tomcat. Your Tomcat installation should have the following subdirectories:
- ${tomcat_home}\conf - Where you can place various configuration files
- ${tomcat_home}\webapps - Containing example applications
- ${tomcat_home}\bin - Where you place web server plugins
In all the examples in this document ${tomcat_home} will be c:\tomcat. A worker is defined to be a tomcat process that accepts work from the IIS server.
Supported Configuration
The IIS to Tomcat redirector is supported for:
- IIS running on any currently supported version of Windows
- All currently supported versions of Tomcat
The redirector may work with IIS running on older, unsupported versions of Windows and/or Tomcat but such configurations are not supported.
AJP protocols?
The redirector uses the AJP protocol to send requests to the Tomcat containers. The AJP version used is ajp13. All current versions Tomcat support the ajp13 protocol. Others servlet engines such as Jetty and JBoss also support the ajp13 protocol.
The ajp12 protocol has been deprecated and you should no longer use it. The ajp14 protocol is considered experimental.
How does it work ?
- 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 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 extension collects the request parameters and forwards them to the appropriate worker using the defined protocol like ajp13.
- The extension collects the response from the worker and returns it to the browser.