IIS与Tomcat的整合
服务器领域,虽说Linux/Unix系统大行其道,但使用最多的仍是Windows 2000 Server或Server 2003操作系统。IIS无疑是Windows系统中用的最广泛的HTTP服务器,而Tomcat则是使用最广泛的jsp/servlet容器。在一个服务器中运行多个Web应用是很常见的,为了使多个服务器共享80端口,便有必要考虑服务器之间的整合。
本文将介绍如何整合Window Server 2003操作系统下IIS 6.0和Tomcat,由IIS作为Tomcat的前端服务器,使之协同工作。文中介绍的办法在实际操作中会因为Window操作系统的版本或IIS的版本不同而略有差异,但与Tomcat的版本关系不大。
1. 环境:
Windows Server 2003 sp1
IIS6.0,运行在80端口
Tomcat 4.1.24,安装在D:/tomcat-4.1.24,运行在8080端口
虚拟主机:www.fuckjapanese.net
2. 修改Tomcat的server.xml文件,如下,使AJP 1.3 Connector启用,并使用其默认端口8009。
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="false" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
useURIValidationHack="false" disableUploadTimeout="true" />
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="0"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
3. 配置Tomcat的虚拟主机www.fuckjapanese.net,上下文路径为空。
<Host name="www.fuckjapanese.net" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="fuckjapanese" debug="0" reloadable="true"/>
</Host>
此时,启动Tomcat,即可通过http://www.fuckjapanest.net:8080访问。
4. 下载安装Tomcat与IIS的连接器(Connector)
Tomcat有JK和JK2两种Connector,但JK2已停止开发,不被推荐使用。因此,最好使用JK Connector,可到此处下载一个isapi_redirect.dll文件
http://apache.justdn.org/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.18/
建立D:/tomcat-4.1.24/bin/jk目录,将上述dll文件放置在其中。事实上,此文件的位置的存放位置没有限制,只要跟下面的配置路径对应即可。
5. 建立JK Connector的配置文件
首先在D:/tomcat-4.1.24/conf下建立一个名为workers.properties的文本文件,此文件指明Tomcat实例的位置及协议等,其内容为:
workers.tomcat_home=D:/tomcat-4.1.24 #Tomcat的安装位置
workers.java_home=D:/j2sdk1.4.2 #JDK的安装位置
ps=/ #路径的连接符
worker.list=worker1 #worker指Tomcat实例
worker.worker1.host=localhost #Tomcat的服务器地址,可用IP
worker.worker1.port=8009 #ajp13 Connector的监听端口
worker.worker1.type=ajp13 # ajp13协议
其次建立一个uriworkermap.properties文件,此文件指明哪些内容转发给Tomcat处理,可以配置为jsp、servlet等动态内容由Tomcat处理,而图片、js、css等静态内容由IIS处理,例如其内容为:
/*=worker1 #表明所有的地址都转发给Tomcat处理
!/*.jpg=worker1 #从所有地址中排除静态的jpg文件,由IIS处理
!/*.gif=worker1 #从所有地址中排除静态的gif文件,由IIS处理
6. 将JK的配置文件路径写入Window注册表
建立一个.reg文件并执行,其内容为:
REGEDIT4
[HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Jakarta Isapi Redirector/1.0]
"extension_uri"="/jakarta/isapi_redirect.dll"
"log_file"="d://tomcat-4.1.24//logs//isapi.log"
"log_level"="debug"
"worker_file"="d://tomcat-4.1.24//conf//workers.properties"
"worker_mount_file"="d://tomcat-4.1.24//conf//uriworkermap.properties"
7. 在IIS中新建一个网站fuckjapanese
网站的主目录指向fuckjapanese的程序目录
网站的主机头添加上域名www.fuckjapanese.net
给网站添加一个虚拟目录,名为jakarta,其本地路径指向D:/tomcat-4.1.24/bin/jk
8. 增加一个新的应用程序池,名为jakarta AppPool
9. 修改网站的属性
在主目录标签页将应用程序池改为新建立的jakarta AppPool
在ISAPI筛选器标签页新建一个筛选器,名称叫jakarta,文件指向D:/tomcat-4.1.24/bin/jk/ isapi_redirect.dll
10. 重新启动网站fuckjapanese,并重新启动jakarta AppPool,这时筛选器jakarta前会有一个绿色向上的箭头。
配置到此完成。这时,通过访问http://www.fuckjapanese.net即可访问应用。
注意:修改配置文件后,必须重启网站,也必须重启应用程序池,修改才能生效。