IIS与Tomcat共存的问题

最近我利用.NET开发一套WEB程序,使用8003端口,当我部署到客户时,他们运行的是
Tomcat,使用80端口。而我也需要80端口,因为网通不能进行带端口的解析。
这个问题以前都没遇到过,后来到网上到处找资料,现在把它总结出来:

如果服务器上已经安装了Apache(使用Apache + Tomcat)的话,那么IIS与Apache是没有办法使用同一个80端口的,因为无论是IIS或者Apache它们都要独占一个端口,所以通常的做法是使用Tomcat的ISAPI来实现IIS与Tomcat之间通信。具体步骤如下(*系统配置为Windows2003 Server + IIS6 + Tomcat5.0.14):

首先去http://apache.linuxforum.net/dist/jakarta/tomcat-connectors/jk2/binaries/win32/jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip下载JK2,由JK2负责IIS和Tomcat的通讯,解开后得到isapi_redirector2.dll。

接下来在Tomcat安装目录下的conf目录下建一个workers2.properties文件,把下面这段配置信息拷贝进去后保存。注意file=".."之中的路径要用"/"。

[shm]

file=c:/Tomcat/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

 

之后编辑jk2.properties文件,确认其中是否有此一句:

request.tomcatAuthentication=false

 

接下修改注册表,可新建一个iis.reg文件,把下面一段拷进去保存然后双击iis.reg把信息导入注册表。(注意,把涉及的Tomcat路径改成你的Tomcat的路径)

  Windows Registry Editor Version 5.00

  [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi

Redirector\2.0]

  "serverRoot"="c:\\Tomcat"

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

  "workersFile"="c:\\Tomcat\\conf\\workers2.properties"

  "logLevel"="INFO"

 

然后打开“我的电脑->控制面板->管理工具->Internet信息服务管理器”,在里面选择“网站”中的默认网站(默认网站我假定指向C:\web),在其上点右键选“属性”,在弹出的页框里选择“ISAPI筛选器”,点“添加”,筛选器名称填jakarta,可执行文件中填入你的isapi_redirector2.dll的绝对路径。“确定”后点“确定”关闭属性页。再在“默认网站”上右键,选择“新建”->“虚拟目录”,别名填jakarta,下一步,路径选为你的isapi_redirector2.dll存放的目录,我的是C:\tomcat\iis,下一步,权限中记得把“执行”那项打勾,然后在“Internet信息服务管理器”的“网站”中的“Web服务扩展”上点右键选择“添加一个新的Web服务扩展”,弹出的框中扩展名填Tomcat(其实无所谓的),“要求的文件”选“添加”然后找到你的isapi_redirector2.dll后“确定”。“设置扩展状态为允许”也打上勾,配置就完成了。
posted on 2005-05-12 22:20  Feelwindy1  阅读(6027)  评论(1编辑  收藏  举报