Make Tomcat 6.x work in IIS7
This is a walkthrough to help you use ISAPI Filters to run Tomcat on a Windows Server Machine that uses IIS7. If you're interested in setting up Tomcat under Apache, see this other lab.usgin.org walkthrough.
A couple of other webpages that I used to learn how to do this are located here and here.
- Prerequisites
- IIS must be installed with ISAPI Extensions and ISAPI Filters enabled. You can double check this in Windows Server 2008 by right-clicking the "Computer" entry in the Start Menu and selecting "Manage". Examine the "Roles" that are installed, and make sure that these services are installed under the "Web Server (IIS)" role.
- Tomcat must be installed and running properly. You should be able to get to the default Tomcat page by pointing a web browser at http://localhost:8080.
- Setup Tomcat
- Download the appropriate Tomcat Connector .dll file from http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/. Note that these .dlls are specific to your server's processor architecture. Navigate the folders to choose the most recent version of the appropriate .dll.
- Rename the .dll to isapi_redirect.dll and place it in {your Tomcat root directory}/isapi.
- Create a file called workers.properties and place it in {your Tomcat root directory}/conf. Paste the following into that file:
# An entry that lists all the workers defined 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
- Create a file called uriworkermap.properties and place it in {your Tomcat root directory}/conf. This file determines what traffic should be handled by the ISAPI redirection. What you'll want to do here is make an entry for each webapp that you have running under Tomcat that you want to be exposed through IIS. Basically, you tell it that if the URI requested matches a certain condition, send the traffic to a "worker" defined in the workers.properties file you already created. For example, let's say you have Geoserver running under Tomcat, and it can be accessed via
http://localhost:8080/geoserver
You should write a line to uriworkermap.properties that reads/geoserver*=worker1
Similarly, if GeoNetwork is running athttp://localhost:8080/geonetwork
then you'll want another line in this file that reads/geonetwork*=worker1
Note that we only defined one "worker" in our workers.properties file, and this worker makes the connection from Tomcat to the ISAPI .dll we downloaded. That worker can be reused for as many webapps as you wish to expose. It's also worth mentioning that changes to uriworkermap.properties are effective immediately once you're finished setting things up, without having to reboot Tomcat. - In that same directory, create a file called isapi_redirect.properties. This file tells the isapi_redirect.dll where to look for its neccessary configuration files that you just created. Adjust the following template file with the appropriate paths for your installation of Tomcat:
# Configuration file for the Jakarta ISAPI Redirector # The path to the ISAPI Redirector Extension, relative to the website # This must be in a virtual directory with execute privileges extension_uri=/tomcat/isapi_redirect.dll # Full path to the log file for the ISAPI Redirector log_file={your Tomcat root directory}\isapi\logs\isapi_redirect.log # Log level (debug, info, warn, error or trace) log_level=info # Full path to the workers.properties file worker_file={your Tomcat root directory}\conf\workers.properties
# Full path to the uriworkermap.properties file worker_mount_file={your Tomcat root directory}\conf\uriworkermap.properties - Finally, you'll want to make sure that the AJP connector is enabled in the {your Tomcat root directory}\conf\server.xml file. Look for a line that looks like this:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
If this line is commented out, uncomment it. If it does not exist, add it.
- Setup IIS
- In the IIS Manager, select the main server node and find the ISAPI and CGI Restrictions feature. Open it and add a new restriction with the following information:
ISAPI or CGI path = {your Tomcat root directory}\isapi\isapi_redirect.dll Description = Tomcat Select "Allow extension path to execute"
- Now right-click your website's node and add a new virtual directory with the following properties:
Alias = tomcat Physical path = {your Tomcat root directory}\isapi
- Next, you'll select the ISAPI Filters feature under your web site's node. Create a new filter with this information:
Filter name = tomcat Executable = {your Tomcat root directory}\isapi\isapi_redirect.dll
- Last but not least, make sure that the ISAPI handler is enabled. Within your web site, click the Handler Mappings feature. If ISAPI-dll is in the disabled group, right-click it and select Edit Feature Permissions. Make sure that Read, Script and Execute are all selected.
- In the IIS Manager, select the main server node and find the ISAPI and CGI Restrictions feature. Open it and add a new restriction with the following information:
That is it! If you had to adjust Tomcat's server.xml file, you'll need to restart Tomcat before things will be working. If not, everything should be ready to go, and you should be able to access your Tomcat webapps through URLs that look like http://my.website.com/geoserver.
- Login to post comments
Application Documents | Description | Document ID | Posted by | Update | Rating |
---|---|---|---|---|---|
How to Install Apache Tomcat for Development Mode | The following text was taken from the RUNNING.txt file found in the root folder of a downloaded and unzipped copy of... | app2011-025 | averill.cate | 02/25/2011 - 2:55pm | |
Running GeoNetwork 2.4.1 under Tomcat 5.5 on Windows XP | This cookbook describes how GeoNetwork 2.4.1 can be made to work under Tomcat 5.5 (JDK 1.5.0_17) on Windows XP. This... | app2009-007 | wgrunberg | 10/09/2009 - 3:05pm | |
Make Tomcat Work Through Port 80 |
On a machine running Tomcat and Apache, you can set things up so that instead of having to type Tomcat URLs... |
app2009-004 | Ryan Clark | 09/21/2009 - 3:47pm |