当前位置首页 > IIS知识

IIS与Tomcat共存的问题

阅读次数:227 次  来源:admin  发布时间:

最近我利用.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

ize=1048576

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

[channel.socket:localhost:8009]

ort=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:statu

之后编辑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后“确定”。“设置扩展状态为允许”也打上勾,配置就完成了。

上一篇:Linuxerrno与Python
下一篇:Linux回环接口(loop-back/loopback)