HardBirch

iis + tomcat 共用80端口(上)

时间:17-11-10 栏目:JAVA语言-JVM虚拟机 作者:魔豆先生 评论:0 点击: 37 次

原理:在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注册表文件,然后双击整合到注册表中

内容:

 

[html] view plain copy

  1. Windows Registry Editor Version 5.00
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Jakarta Isapi Redirector\2.0]
  3. "extension_uri"="/jakarta/isapi_redirect.dll"
  4. "log_file"="D://sw//tomcat7//logs//isapi_redirect.log"
  5. "log_level"="debug"
  6. "worker_file"="D://sw//tomcat7//conf//workers.properties"
  7. "worker_mount_file"="D://sw//tomcat7//conf//uriworkermap.properties"
  8. "tomcat_start"="D://sw//tomcat7//bin//startup.bat"
  9. "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的内容:

 

[html] view plain copy

  1. extension_uri=/jakarta/isapi_redirect.dll
  2. log_file=D:/sw/tomcat7/logs/isapi_redirect.log
  3. log_level=debug
  4. worker_file=D:/sw/tomcat7/conf/workers.properties
  5. 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内容

 

[html] view plain copy

  1. workers.tomcat_home=D:\sw\tomcat7\
  2. workers.java_home=C:\Program Files\java\jdk.1.7.0_67
  3. ps=/
  4. #testiistom、examples为访问Tomcat服务器的一个标签,
  5. #对应【tomcat_home】/webapps/文件夹下面的testiistom和examples文件夹,可以设置多个,用逗号隔开
  6. worker.list=testiistom,examples
  7. worker.testiistom.type=ajp13
  8. worker.testiistom.host=localhost
  9. worker.testiistom.port=8009
  10. worker.testiistom.lbfactor=1
  11. worker.examples.type=ajp13
  12. worker.examples.host=localhost
  13. worker.examples.port=8009
  14. worker.examples.lbfactor=1

 

 

七:配置isapi_redirect第四步

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

uriworkermap.properties内容:

 

[html] view plain copy

  1. /testiistom/*=testiistom
  2. /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内容:

 

[html] view plain copy

  1. <%@ page contentType="text/html;charset=gb2312" %>
  2. <HTML>
  3. <HEAD>
  4. <TITLE>JSP测试页面</TITLE>
  5. <HEAD/>
  6. <BODY>
  7. <% out.println("<h1> Hello World! </h1>"); %>
  8. </BODY>
  9. </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端口(上)

iis + tomcat 共用80端口(上):等您坐沙发呢!

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐