转载:http://www.cnblogs.com/sjpisaboy/archive/2006/12/07/585749.html

最近碰到一个问题:我们实验室的一台IBM EServer服务器被运到学校的信息办进行托管,这台服务器上面跑着一些ASP.NET网站、ASP网站以及一个JSP的网站。服务器的操作系统是Window Server 2003,并在其上安装了IIS6.0、Tomcat5.5等服务器软件。众所周知,IIS服务器占用80端口,而Tomcat服务器一般用8080端口。本来两者互不侵犯,但是因为学校的信息办的防火墙只允许开80端口,其他端口一律broke。这显然是那些非IIS服务器的服务不能运行。

为了解决上述问题,我查了一些资料。了解到,在IIS的站点属性中有一个对ISAPI 过滤器的配置。而Apache的Jakarta项目下面有一个Jakarta Isapi Redirector工具,就是一个ISAPI过滤器,这个过滤器可以把含有.JSP的URL地址发送给TOMCAT进行处理,并将处理结果,即动态生成的HTML页通过IIS发送回请求者那边。也就是说通过一个80端口,同时也能运行JSP页面。

我下载了一个isapi_redirect-1.2.14.exe,按照wizard简单安装了一下。为了确保服务器的运行正常,我先在一台XP PC上试运行了一下,配置步骤如下:
        
         1 打开IIS管理端,右键点击默认站点的属性页面,选择ISAPI过滤器选项卡,查看名为Jakarta的Jakarta Isapi Redirector是否存在,并确保其状态为启用!
         2 打开Jakarta Isapi Redirector安装目录下conf文件夹中的uriworkermap.properties,在其中添加一个你需要通过IIS运行的JSP站点的名称(该站点需要在TOMCAT下的webapps目录下,并运行良好),比如:该站点名称为test,则需要加入/test/*=wlb。
         3 重启IIS
         4 运行http://localhost/test/...便可看到结果

上述四步为XP下的配置过程,如果是在Server 2003下的话,还需要在第二步之前,做如下配置:

1.5 打开IIS管理端,点击WEB扩展服务,新建一个扩展服务,其名称建议为Jakarta,浏览Jakarta Isapi Redirector安装目录下的bin,选择isapi_redirect.dll。并允许这个服务的运行。

做完上述的配置,你就可以解决我所遇到的需要在IIS下与TOMCAT协同的问题。我所参考的主要资料是http://www.cflex.net/showFileDetails.cfm?ObjectID=296&Object=File&ChannelID=1。如果需要知道详细的情况,也可访问该地址查询。

05-11 13:36