整合IIS5.1和Tomcat5.5.12

终于可以在80端口跑JSP了,爽!把IIS和TOM猫集成在一起工作还真不容易,差点直接拿刀在硬盘上刻了。 :-)

还是简要记录一下这个过程,以免筛子脑袋两天以后就啥都漏没了。

运行环境简介

操作系统版本:Windows XP Professional 2002 SP2

IIS版本:5.1

Tomcat版本:5.5.12

JDK版本:1.5.0_05

Connector版本:2.0.4(点这里下载)

安装软件

1、J2SDK安装与配置

2、Tomcat安装与配置

3、IIS安装与配置。

安装完毕后,确定它们可以独立运行。

(PS:以上安装与配置文档可能版本较老,不过,经测试完全胜任指导本文使用版本的安装与配置。)

整合步骤

1、将IIS和Tomcat默认网站指向同一站点(关于这一点,我会继续摸索一下,目前没搞明白为什么必须这样);

2、isapi_redirector2.dll拷贝到任意目录下,我这里用的是:%TOMCAT_HOME%\tc5iis\;

3、在%TOMCAT_HOME%\conf\目录下建立workers2.properties,键入以下内容:

[shm]

file=%TOMCAT_HOME%/logs/jk2.log

size=1048576

# 实际运用时把所有的localhost和8009换成你自己的IP和端口

[channel.socket:localhost:8009]

port=8009

host=localhost

# define the worker

[ajp13:localhost:8009]

channel=channel.socket:localhost:8009

# Uri mapping

[uri:/*.jsp]

[uri:/web/*]

worker=ajp13:localhost:8009

# define the worker

[status:status]

# Uri mapping

[uri:/jkstatus/*]

worker=status:status

PS:红色部分需要被替换为绝对路径,路径用“/”。

4、建立注册表文件tc5iis.reg(文件名任取),键入以下内容:

[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\2.0]

  "serverRoot"="%TOMCAT_HOME%"

  "extensionUri"="/jakarta/isapi_redirector2.dll"

  "workersFile"="%TOMCAT_HOME%\\conf\\workers2.properties"

  "logLevel"="INFO"

PS:红色部分需要被替换为绝对路径,路径用“\\”。

将该文件导入到注册表中。(我在导入该文件时,始终提示必须为二进制值才可以导入,然后导入失败;不得不直接在注册表编辑器中编辑,不过效果是一样的。)

5、配置IIS

打开IIS管理器,选中站点[属性](右击菜单)==》选中ISAPI筛选器,[添加]“jakarta”,指定绝对路径到isapi_redirector2.dll目录==》[确定],关闭[属性]==》选中站点[新建]-[虚拟目录],填入别名jakarta,指定绝对路径到isapi_redirector2.dll目录,然后在[执行]复选框打勾==》OK!

6、重启Tomcat、IIS服务并测试

在站点根目录下,建立HelloWorld.jsp,源码如下:

<html>

<head>

<title>Hello World</title>

</head>

<body>

<% out.print("Hello World!"); %>

</body>

</html>

浏览器地址栏分别输入:http://localhost:8080/HelloWorld.jsp和http://localhost/HelloWorld.jsp看看结果。如果一样,那么一切OK!

虽然整合看起来已经在发挥作用了,可是还有很多的问题存在。原来Tomcat下的子站点还是不能被80端口直接访问,而且有些JSP页面中的代码不能被正确解析,可是这些在8080端口是OK的,看来还要花时间深入了解一下。

呵呵,无论如何现在IIS和TOM猫已经成为同事了,他们彼此有再多的不满,也要在我的领导下变得驯服一点。

PS:英文文档里提到jk2.properties文件,我不知道这个应在TOM猫的哪个目录下存放,而且不知道它到底是干什么的。难道现在还存在的这写小问题和这有关?