iis + tomcat 共用80端口

原理:在iis中使用isapi_redirect转发给tomcat服务器处理

环境:

          windows 7,  iis7,  apache-tomcat-7.0.53

一:正确安装iis

注意:

         当然建议先安装iis,然后再安装.net framework,否则会出现IIS HTTP错误 404.17-Not Found这样奇怪的错误


二:安装Tomcat


三:下载isapi_redirec

下载地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

特别注意,32位及64位系统使用对应的dll,否则会出现类似  调用GetFilterVersion失败 这样的异常

32位使用:tomcat-connectors-1.2.40-windows-i386-iis.zip

64位使用:tomcat-connectors-1.2.40-windows-x86_64-iis.zip


解压得到isapi_redirec的dll,将其重命名为:isapi_redirect.dll


四:配置isapi_redirec第一步

1:在Tomcat的安装文件夹【tomcat_home】下面新建文件夹jakarta,将isapi_redirect.dll 文件拷贝到里面

2:将isapi_redirect.dll文件拷贝到 【tomcat_home】/conf/ 文件夹下面


五:配置isapi_redirec第二步

有以下两个方式,下面第一个方式是大多网友的文章描述的,但是我是没有试验成功,估计跟系统设置、系统版本等因素有关,就没必要深究了,建议使用方式二

1:方式一

新建isapi_redirect.reg注册表文件,然后双击整合到注册表中

内容:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Jakarta Isapi Redirector\2.0]
"extension_uri"="/jakarta/isapi_redirect.dll"
"log_file"="D://sw//tomcat7//logs//isapi_redirect.log"
"log_level"="debug"
"worker_file"="D://sw//tomcat7//conf//workers.properties"
"worker_mount_file"="D://sw//tomcat7//conf//uriworkermap.properties"
"tomcat_start"="D://sw//tomcat7//bin//startup.bat"
"tomcat_stop"="D://sw//tomcat7//bin//shutdown.bat"

注意: 不要尝试将reg文件另存为utf-8编码,否则无法整合到注册表中


2:方式二

【tomcat_home】/conf/ 文件夹下面(isapi_redirect.dll文件在里面), 新建立一个与dll文件名相同,扩展名为properties的配置文件,即:isapi_redirect.properties,isapi_redirector.dll初始化时,默认会在自己所在的目录寻找同名的配置文件,如果没有再到注册表中读取配置信息.

isapi_redirect.properties的内容:

extension_uri=/jakarta/isapi_redirect.dll
log_file=D:/sw/tomcat7/logs/isapi_redirect.log
log_level=debug
worker_file=D:/sw/tomcat7/conf/workers.properties
worker_mount_file=D:/sw/tomcat7/conf/uriworkermap.properties

特别特别特别注意

isapi_redirect.properites的文件需要注意编码问题,在本次测试中我使用ansi编码才行,之前使用utf-8编码存储的时候,发生调用 GetFilterVersion 失败


六:配置isapi_redirec第三步

【tomcat_home】/conf/ 文件夹下面新建workers.properties文件

workers.properties内容

workers.tomcat_home=D:\sw\tomcat7\
workers.java_home=C:\Program Files\java\jdk.1.7.0_67
ps=/

#testiistom、examples为访问Tomcat服务器的一个标签, 
#对应【tomcat_home】/webapps/文件夹下面的testiistom和examples文件夹,可以设置多个,用逗号隔开
worker.list=testiistom,examples

worker.testiistom.type=ajp13
worker.testiistom.host=localhost
worker.testiistom.port=8009
worker.testiistom.lbfactor=1


worker.examples.type=ajp13
worker.examples.host=localhost
worker.examples.port=8009
worker.examples.lbfactor=1

七:配置isapi_redirect第四步

【tomcat_home】/conf/ 文件夹下面新建uriworkermap.properties文件

uriworkermap.properties内容:

/testiistom/*=testiistom
/examples/*=examples

说明:

1:等号左边是路径规则,符合此规则的就通过Connector转发给tomcat

     比如说在浏览器上访问   http://localhost/examples/,符合  /example/*的规则,那么它就会转发给Tomcat对应的worker,转发目标worker名称为examples


2:等号右边即是workers.properties文件定义的worker


八:配置IIS步骤一

1:打开IIS,点击电脑节点,即最顶端那个节点

2:在中间区域框中找到【ISAPI和CGI限制】,双击它

3:双击【ISAPI和CGI限制】后,在右边框点击【添加】

      ISAPI或CGI路径(I):   选择【tomcat_home】\conf\isapi_redirect.dll

      描述:jakarta

      允许执行扩展路径(A):要勾选


九:配置IIS步骤二

1:打开IIS,点击网站下面的【Default Web Site】节点

2:在中间区域框找到【ISAPI筛选器】,双击它

3:双击【ISAPI筛选器】后,在右边框点击【添加】

     筛选器命名(F):jakarta

     可执行文件(E):选择【tomcat_home】\conf\isapi_redirect.dll


十:配置IIS步骤三

1:打开IIS,点击网站下面的【Default Web Site】节点

2:在中间区域框找到【处理程序映射】,双击它

3:双击【处理程序映射】后,在右边框点击【添加脚本映射...】

      请求路径:  *.jsp

      可执行文件(E):选择【tomcat_home】\conf\isapi_redirect.dll

      名称:JSP


十一:配置IIIS步骤四

1:打开IIS,右键点击网站下面的【Default Web Site】-》添加虚拟目录

      名称:jakarta

      物理路径:【tomcat_home】\conf

      说明:在你需要整合Tomcat的网站(例如Default Web Site)下面,都要建立jakarta虚拟目录,并指向【tomcat_home】\conf,这个虚拟目录的名称必须与  五:配置isapi_redirec第二步 中配置的extension_uri的名称相同


十二:配置IIIS步骤五

1:打开IIS,点击网站下面的【Default Web Site】节点下面的  jakarta 虚拟目录节点

2:在中间区域框找到【处理程序映射】,双击它,然后在右边框找到【编辑功能权限】,将所有的权限都勾选


十三:测试

1:在testiistom文件夹下面新建test.jsp文件

      test.jsp内容:

<%@ page contentType="text/html;charset=gb2312" %>
<HTML>
<HEAD>
<TITLE>JSP测试页面</TITLE>
<HEAD/>
<BODY>
<% out.println("<h1> Hello World! </h1>"); %>
</BODY>
</HTML>

2:重启iis


3:重启tomcat


4:测试访问

      http://localhost/                                                                   //显示iis主页

      http://localhost:8080                                                          //显示Tomcat主页

      http://localhost/examples/                                                 //符合/example/*规则,跳转到Tomcat对应的example项目

      http://localhost/testiistom/test.jsp                                     //符合/testiistom/*规则,跳转到Tomcat对应的testiistom项目的test.jsp文件并运行


5:注意

      修改了properties文件后,需做如下操作

      关闭iis 的网站(例如你使用的是Default Web Site)-》

      停止Default Web Site对应的程序池,然后再次启动,然后进行程序池回收 -》

      启动程序池-》

      启动Default Web Site(或者点多几次重新启动) -》

      启动Tomcat


      另外,如果上面操作无数次你还是无法启动IIS,或者启动IIS以及Tomcat后,连Asp.net网站都无法访问的,恭喜,我不知道原因,重启系统,又OK,呵呵。




你可能感兴趣的:(iis + tomcat 共用80端口)