这里主要讲如何配置IIS与Tomact共用端口,具体IIS与Tomcat的安装过程就不在本文讲解。
首先,在Windows服务器上,部署.NET相关的Web程序,必然是首选IIS进行部署,对外的网站,一般都是监听80端口,但如果同时又需要部署一个Java Web程序,也需要用到80端口,该怎么办呢?
所以,IIS这里就提供了一个叫做ISAPI(Internet Server Application Programming Interface)的接口。目的就是让IIS接收到请求之后,根据你的配置需求,将你需要转发的请求根据你配置的Interface转发到对应的容器上。
听起来很想很玄乎,其实简单的说一个请求流程大概就是这样:
用户请求 -> IIS收到请求 -> IIS检查请求过滤列表 -> 请求分发至Tomcat -> Tomact处理完请求返回给IIS -> IIS返回给用户处理结果。
闲话少说,我们配置的过程大概是这样:
1.安装IIS7
2.安装Tomcat8
3.下载ISAPI
4.配置Tomcat - ISAPI
5.配置IIS ISAPI
6.完成并试验
开始配置:
1.安装IIS7(步骤不再讲述)
(记得要把ISAPI拓展和ISAPI筛选器也同时安装)
2.安装Tomcat8(步骤不再讲述)
3.下载ISAPI
ISAPI是IIS提供给其他程序的接口,对应到Tomcat这边,你需要下载一个isapi_redirect.dll文件,这是Tomcat与IIS交流的“工具”。(下载需要注意的是,32位和64位的问题,不要下载错了!)
4.配置Tomcat – ISAPI
l 下载完第三个步骤的压缩包,找到里面有一个叫isapi_redirect.dll的文件,在Tomcat的conf文件夹内新建一个jakarta的文件夹,把isapi_redirect.dll放到这个文件夹里。
l 同时,新建一个叫做isapi_redirect.properties的配置文件(文本文档类型),并把文档内容填写完毕:
(其中,第一个地址表示dll的位置,在我们刚才新建文件夹jakarta下,这里按这个填写就可以了;第二行第三行是log文件的生成位置和生成信息级别;第四行第五行worker_file和worker_mount_file是待会我们要新建的另两个配置文件的地址)
l 接下来是两个文件:
文件名:workers.properties
内容:
worker.list=worker1 (我们新建了一个worker1的实例为我们工作)
worker.worker1.port=8019(这个是Tomcat的ajp端口,在conf文件夹下server.xml可以看到)
worker.worker1.host=127.0.0.1(这个表示ISAPI转发请求的地址,我们Tomcat是在本地就填写本地的地址就好了)
worker.worker1.type=ajp13(这个是ajp协议版本,对应是AJP13)
文件名:uriworkermap.properties
内容:
/Hello|/*=worker1(前面表明/Hello路径下的所有请求,全部会交给我们的worker1去处理,这里可以配置很多个请求规则)
这里的/Hello,就是tomcat程序的名字,例如你的是foo.war,那这里就是/foo|/*
l 配置完成后,conf/jakarta文件夹下应该有这几个文件(文件名不能错):
5.配置IIS ISAPI
如果你的IIS并没有网站应用,那就新建一个网站应用(可以用80端口);如果你原本已经有网站应用,那就直接下一步;
在你的网站应用里新建一个虚拟目录,名字叫:jakarta(一定要叫这个名字!),物理地址选择之前步骤的tomcat下的jakarta文件夹;
在左侧列表选择jakarta虚拟目录,在右边功能视图中找到:
打开之后这样子操作:
然后在左侧列表,点击你的网站程序,打开这个:
根据下面的操作步骤操作,其中需要注意的几点:
筛选器名字必须是jakarta,可执行文件是我们刚才isapi_redirect.dll,填写完毕后确认,就会有第三步显示的内容。
然后在左侧列表,点击我们的Server,并在右侧功能菜单找到:
并根据下列步骤操作:
6.完成并测试
OK!配置完成了,重启IIS服务器,输入http://YourIP:YourPort/Hello,看看是否转发到Tomcat处理了!