您的位置:首页 > 运维架构 > Tomcat

iis + tomcat 共用80端口

2016-01-23 10:44 429 查看
原理:在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,呵呵。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: