Tomcat 6.0 与 IIS 6.0 整合、共用80端口

http://hi.baidu.com/mayalog/blog/item/0cedb76fc4d47dea43169423.html

最近让IIS6支持Jsp和servlet,转载了好多文章,最终得出自己的心得,记录在此。

先说软件环境:Windows 2003 Sp2、IIS6、Tomcat 6.0.29、Jre 6Update21、JK连接器isapi_redirect-1.2.30.dll。(注意:架设环境为干净的Windows 2003,IIS6开启Asp.net 1.1和Asp支持。)
第一步,安装好IIS6,打开IE输入localhost,显示“建设中”,表示IIS6运行正常。
第二步,安装Jre,选择“更改目的地文件夹”,这里设置为:“C:\Java”,安装OK。
第三步,安装Tomcat 6,选择安装模式为“FULL”全部安装,会自动识别到Java的安装目录,其他默认安装。安装完成后,可以直接运行Tomcat。在IE里输入localhost:8080,显示如下图,表示安装成功。  第四步,将JK连接器的压缩包,拷贝到C:\Tomcat\conf目录下,然后解压。(这样可以避免一些权限问题)修改文件名为:isapi_redirect.dll。
第五步,在C:\Tomcat\conf目录下,建立一个注册表文件isapi_redirect.reg,内容如下:(将C:\\tomcat更换成你自己的tomcat安装目录)
Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0] 
"log_file"="C:\\tomcat\\logs\\isapi.log" 
"log_level"="debug" 
"worker_file"="C:\\tomcat\\conf\\workers.properties" 
"worker_mount_file"="C:\\tomcat\\conf\\uriworkermap.properties" 
"tomcat_start"="C:\\tomcat\\bin\\tomcat.bat start" 
"tomcat_stop"="C:\\tomcat\\bin\\tomcat.bat stop" 
"extension_uri"="/jakarta/isapi_redirect.dll" 
还在C:\Tomcat\conf目录下,建立workers.properties和uriworkermap.properties两个文件,文件内容如下:uriworkermap.properties内容:(此文件内容根据需要有可能有变化,Tomcat官网上有文档说明)
/*.jsp=ajp13/*.do=ajp13 
/*=ajp13 /*增加让servlet等访问*/ (这个让我找了好久,不加这个servlet不支持,必须加上8080端口才能访问)
workers.properties内容:(Tomcat和Java目录按你自己安装的目录修改)
workers.tomcat_home=c:\Tomcat\ 
workers.java_home=c:\Java ps=\ 
worker.list=ajp13 
worker.ajp13.port=8009 
worker.ajp13.host=localhost 
worker.ajp13.type=ajp13 
worker.ajp13.lbfactor=1 
第六步,双击注册表文件isapi_redirect.reg,添加到注册表。打开HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0项,检查右边项目中是否包含如下项: 
extension_uri /jakarta/isapi_redirect.dll (jakarta为IIS下的虚拟目录) 
log_file c:\tomcat\logs\isapi.log (指定JK插件使用的日志文件) 
log_level debug (指定日志级别) 
worker_file c:\tomcat\conf\workers.properties (指定JK插件的工作文件) 
worker_mount_file c:\tomat\conf\uriworkermap.properties (指定JK插件的URL映射) 

执行注册表文嘉后,则建立相关项和相关值。
第七步,修改IIS6设置,添加一个新的web服务扩展,如下图:
给“默认网站”添加ISAPI筛选器,筛选器名称为:jakarta,具体如下图: (绿色向上箭头表示加载成功,但是一开始设置时则没有绿色向上箭头,状态是未知)
给“默认网站”添加一个别名为:jakarta的虚拟目录,路径为JK连接器所在目录,这里就是c:\tomcat\conf,如下图: 虚拟目录别名:jakarta
 权限设置:
运行cmd,输入iisreset,重启IIS6,查看“默认网站”ISAPI筛选器状态,是否为绿色箭头。(有时会没有,但只要网站运行正常就可以。这里为干净的系统环境,所以一般是有绿色箭头的)
第八步,修改C:\Tomcat\conf目录下的server.xml文件。(默认记事本打开,代码一片混乱。找个支持编程语言的记事本,如Notepad++,Editplus等,按xml语言显示,就好看多了)这里主要修改<Host></Host>之间的内容,默认内容:<Host name="localhost"  appBase="webapps"            unpackWARs="tr " autoDeploy="tr "            xmlValidation="false" xmlNamespaceAware="false"></Host>
这里修改为:
<Host name="localhost"  appBase="webapps" (×这行不用复制×  name可修改为IIS里网站捆绑的域名,appBase这里是webapps,可修改为网站默认目录)            unpackWARs="tr " autoDeploy="tr "            xmlValidation="false" xmlNamespaceAware="false">(×这行不用复制× 这里可以插入<Alias>test.com</Alias> 语句来绑定域名) <Context path="" docBase="C:\Inetp \wwwroot" reloadable="tr "/>(×这行不用复制×  Context语句还有这样设置的<Context path="" reloadable="tr " docBase="C:\Inetp \wwwroot" workDir="C:\Inetp \wwwroot" /> )</Host>
重启Tomcat服务,在IE输入localhost即可访问jsp网页了,servlet也工作正常,共用80端口,至此Tomcat和IIS整合完毕。
一些疑问解答:1、web服务器扩展扩展名也要为jakarta吗?答:网上有文章也是这么写的,但是测试无需如此。ISAPI筛选器和虚拟目录需要名字为:jakarta,因为在注册表文件里写明如此。2、为什么没有在IIS里添加jsp应用程序扩展,设置主页index.jsp?答:不添加jsp扩展,不设置index.jsp,也可以运行。如果怕出现问题,也可以添加。jsp扩展配置如下图:
3、如果要添加多个网站,怎么办?答:配置Tomcat的server.xml文件。在<Host></Host>后面再添加多个<Host></Host>即可,请确保在<Engine></Engine>层级之内即可。如下例句:<Host name="www.myweb1.com"   appBase="C:\Inetp \wwwroot\myapp1"
             unpackWARs="tr " autoDeploy="tr "
             xmlValidation="false" xmlNamespaceAware="false"><Context path="" docBase="C:\Inetp \wwwroot\myapp1" reloadable="tr "/>       </Host>
       <Host name="www.myweb2.com"   appBase="C:\Inetp \wwwroot\myapp2"
             unpackWARs="tr " autoDeploy="tr "
             xmlValidation="false" xmlNamespaceAware="false"><Context path="" docBase="C:\Inetp \wwwroot\myapp2" workDir="C:\Inetp \wwwroot\myapp2" reloadable="tr "/>       </Host> 4、看到一些文章还需要配置系统环境,这里怎么没有配置?答:如果使用的JDK,则需要配置系统环境,而JRE则不需要。这里顺带说一下JDK的系统环境配置,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:(Tomcat和JDK安装目录分别为:C:\Tomcat和C:\Java)
CATALINA_HOME:C:\Tomcat
CATALINA_BASE:C:\Tomcat
TOMCAT_HOME:C:\Tomcat
JAVA_HOME:C:\Java 
classpath:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因为它代表当前路径) 
path:%JAVA_HOME%\bin (这个用分号隔开,补充在原来已有的字符串后面) (注意:有的文章在classpath里需要添加servlet.jar,这个文件在JDK安装目录下C:\Java\jre6\lib\ext里,如需要则添加%JAVA_HOME%\jre6\lib\servlet.jar;原有文章里介绍在Tomcat的lib目录下,但是根本没有,只有servlet-api.jar) 5、我的网站开始是Asp的,但增加一些应用是jsp的,IIS能同时支持吗?答:一个网站,可以同时支持,但是要不同的端口号访问。如Asp的是80端口,jsp的是8080端口。只需要安装好Tomcat和jre,设置Tomcat的server.xml文件即可。无需JK连接器相关设置。
最后,这里介绍的是干净的系统环境,如果有问题请大家互相探讨交流,谢谢。

补充:Tomcat设置虚拟目录的方法, 不修改server.xml
转自:http://soly84.blog.51cto.com/153780/52484

为什么要不修改server.xml呢?在Tomcat6的doc帮助文档中,官方是不提倡修改server.xml来添加虚拟目录的!       而我认为,下述使用的方法,非常方便于项目的移植,移植后,只有修改docBase和workDir的值就行了,甚至可以去掉workDir这个属性!

在tomcat文件夹的 conf\catalina\localhost (对于Tomcat6版本及其以上,需要自己创建catalina和localhost这两个文件夹)增加project .xml文件(该文件名的project要和下面的“path=“/xxx"”的xxx相同)
文件内容:<Context path="/project" reloadable="tr " docBase="E:\javast io\oob" workDir="E:\javast io\oob\work" />docBase是项目文件夹的 web-inf文件夹的上一层目录 workDir是指Tomcat解析Jsp转换为Java文件,并编译为class存放的文件夹,设置在项目文件夹里面,可以避免移植到其他地方首次读取jsp文件需要重新解析 。 一般格式:项目文件夹\work reloadable是指可以重新加载, 一般设置为tr  ,方便使用,不需要经常重启Tomcat。以后启动Tomcat,在浏览器输入 http://localhost:8080/project 就能访问该项目的welcome文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值