Proxy for Tomcat

 

Proxy for Tomcat

 

IIS Proxy for Tomcat


You need to install the connector on the IIS box. To acomplish this you need to:
  • Download the files from Apache
  • Edit the config files and IIS


Downloading the files


You need two basic things;
  • The isapi_redirect dll
  • The baseline config files.
The dll is available from apache as a compiled binary at:
>>http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/

The config files (there are three) can be extracted from the 'conf' in the source package. You can download it from:

>>http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.26/


Editing the files and changing IS


Creating a Directory
The best place is to put these files is all together in a new directory under "Program Files/Tomcat-ISAPI" or some such. It needs to contain the three config files and the dll.

Editing The Config Files
Rather than creating a registry entry, create a new "isapi_redirect.properties" text file in the Tomcat-ISAPI folder. In it, put your config details as in reference 1 (or use the sample at the bottom of this page)

Utilize the workers.properties.minimal file by switching it with the workers.properties.

Edit the uriworkermap.properties file to configure the resources to proxy/protect.

Configure IIS
Create the Jakarta folder. To do this, enter the IIS manager and on the default website, create a virtual directory named 'Jakarta' that points to the folder above. When prompted, add the execute permission.(reference 2)

Add the ISAPI filter to the website. Do this by bringing up the properties of the website (usually the default one), go to the ISAPI Filters tab and hit 'Add'. Give it a name like 'Tomcat Proxy' and browse to the dll we downloaded above.

Register it as a Web Service Extention. To do this, navigate to the Web Service Extentions on the right, right click and select "Add a new Web service extention", name it something like "Tomcat Proxy", add that isapi as a required file, and mark it as allowed in the check box.

Some soruces suggest creating a new application pool. You can do this easily and simply change the properties of the jakarta virt dir to point to the new app pool.

It may be important to add proxyName="boss2.cats.ohiou.edu" and proxyPort="80" to the tomcat connector, but it's too soon to tell.

Importantly, you must use the connector property tomcatAuthentication=false to use external auth such as the http_user variable

A debug bessage like

[Thu Jan 05 14:49:50 2006] [4972:3800] [debug] jk_isapi_plugin.c (863):
[/bacworth/] is a servlet url - should redirect to bacworth[color=blue]
>[/color]

That's K. Means that you've correctly set the mount points.

2006-01-09 17:12:10 134.9.150.61 GET /bacworth/ - 80 - 134.9.150.5 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.N ET+CLR+1.1.4322) 401 1 0[color=blue] >[/color]

This means that you did not install isapi_redirect correctly. Since it's 2K3 check you can execute /jakata/isapi_redirect.dll from your vhost, and that you add this .dll to the 'Web Services Extensions' or allow 'All Unknown ISAPI Extensions'

isapi_redirect.properties file

# 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=/jakarta/isapi_redirect.dll

# Full path to the log file for the ISAPI Redirector log_file=E:\CSC\Logs\isapi_redirect.log

# Log level (debug, info, warn, error or trace) log_level=debug

# Full path to the workers.properties file worker_file=E:\Program Files\Tomcat-ISAPI\workers.properties

# Full path to the uriworkermap.properties file worker_mount_file=E:\Program Files\Tomcat-ISAPI\uriworkermap.properties

Sources

  1. >>http://tomcat.apache.org/connectors-doc/howto/iis.html
  2. >>http://tomcat.apache.org/connectors-doc/config/iis.html
  3. >>http://tomcat.apache.org/tomcat-5.5-doc/config/ajp.html

Comments