欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

WIN2003下IIS6集成一个或多个Tomcat的方法

程序员文章站 2022-04-06 11:13:43
需求:客户的服务器由我及他自己的技术人员维护,服务器上有多个web在运营,asp、php、java的混合着都有,原先的web架构是nginx+apache+iis+x*to...

需求:客户的服务器由我及他自己的技术人员维护,服务器上有多个web在运营,asp、php、java的混合着都有,原先的web架构是nginx+apache+iis+x*tomcat,但客户的技术人员时常要对一些小站点[asp、php]进行调整,如增删站点或做伪静态规则等处理,而此时问题出来了,客户技术员只对iis配置熟悉,对配置nginx、apache这些很不熟悉,并且这些web站点也没什么访问量,所以基本上不用考虑性能这块。所以最终决定给全换成iis+x*tomcat,asp、php全由iis搞定。由于iis配置与php的集成网上很多,所以这里我只记录iis与java服务器tomcat的集成。

WIN2003下IIS6集成一个或多个Tomcat的方法

不知道我以这张图能不能说明我要表达的意思,一句话,把站点中uri请求以ejf后缀结尾的都转发给后端java服务器tomcat来处理。好了,废话不多说了,准备实站开工。

1、第一步首先下载isapi_redirect.dll 文件,目前最新版本为1.2.31,下载地址为: 注意下载的版本与你的os关系,我的服务器是使用的win 2003 32位版本。所以应该下载win32版本。将下载下来的isapi_redirect-1.2.31.dll放在tomcat7根目录下的jakarta目录中,当然你也可以随意的放在其它目录。

2、在jakarta目录下同时建立三个文件:install.reg、uriworkermap.properties、workers.properties,千万别在这三个文件中的配置没有完全对的情况下就导入install.reg这个文件到注册表中。

install.reg文件内容:

复制代码 代码如下:

[-hkey_local_machine\software\apache software foundation\jakarta isapi redirector\1.0] 
[hkey_local_machine\software\apache software foundation\jakarta isapi redirector\1.0] 
"extension_uri"="/jakarta/isapi_redirect-1.2.31.dll" 
"log_file"="d:\\usr\\local\\lyservice\\tomcat\\tomcat7\\jakarta\\logs\\isapi.log" 
"log_level"="error" 
"worker_file"="d:\\usr\\local\\lyservice\\tomcat\\tomcat7\\jakarta\\workers.properties" 
"worker_mount_file"="d:\\usr\\local\\lyservice\\tomcat\\tomcat7\\jakarta\\uriworkermap.properties"

uriworkermap.properties文件内容

#所有请求后缀为ejf的uri都拦截转发给对应的后端java服务器来处理  

复制代码 代码如下:

/en.dgdy.cc/*.ejf=worker1 
/cn.dgdy.cc/*.ejf=worker2 

3、到这里,针对tomcat的配置处理就配置完了,接下来就是需要在iis中进行配置,首先在iis中建立对应的两个web站点,对应的目录也应该指向到与你tomcat配置虚拟主机所指向的同一个文件夹下。这里在iis中的建立web站点与建立其它站点完全没有区别。

WIN2003下IIS6集成一个或多个Tomcat的方法


      

        4、接下来就是比较重要的配置了,分别为这两个站点建立一个虚拟目录<jakarta>。注意此虚拟目录的路径一定要为tomcat7\jakarta这个目录,并且在此目录下一定要有最前面我们配置的三个配置文件及那个dll文件。

WIN2003下IIS6集成一个或多个Tomcat的方法

WIN2003下IIS6集成一个或多个Tomcat的方法

WIN2003下IIS6集成一个或多个Tomcat的方法

WIN2003下IIS6集成一个或多个Tomcat的方法


        5、在iis en.dgdy.cc站点上右键--->属性--->主目录,将执行权限设置为脚本和可执行文件。

WIN2003下IIS6集成一个或多个Tomcat的方法

        再点击isapi筛选器打开如下窗口并进行配置,一定要注意可执行文件的引用位置一定要与上面的虚拟目录及注册表文件中配置的目录一致,切记切记。

WIN2003下IIS6集成一个或多个Tomcat的方法

        6、添加一个新的web服务扩展

WIN2003下IIS6集成一个或多个Tomcat的方法

        这里的扩展名不能随便乱改,要求的文件也一定要是对应目录下的那个dll文件,同时一定要把下面的“设置扩展状态为允许”勾上。切记切记。

WIN2003下IIS6集成一个或多个Tomcat的方法

        7、好了,针对en.dgdy.cc 站点在iis中的配置就完成了,同上步骤,把cn.dgdy.cc在iis中的配置也配置上,并且把install.reg这个注册表文件导入到注册表中。这点千万也别忘了,如果配置完后再次分别打开这两个站点的属性面板切换到isapi筛选器选项卡面板中如果看到的都是绿色向上箭头则表示配置无误,反之如果是红色,则配置有问题或需要重启iis服务器。如下图所示。

WIN2003下IIS6集成一个或多个Tomcat的方法

        8、最后,如果都变成了绿色向上箭头,那么我们就来验证一下吧,如访问http://cn.dgdy.cc/html/callme.html?act=contact这个页面 如果页面中的留言验证码能出来,则表明配置成功。

        最后的话:如果照着以上配置你确保一针一线都没有配错,但访问对应的动态页面还是不能转发给后端java服务器来处理,则我能想的有可能你存在以下几点错误之一。

       a)、服务器os是64位,但你下载的是32位的dll类库文件,反之。。。。。。

       b)、测试一下直接加上端口号连接你的tomcat服务器看是否能正常访问

       c)、导入install.reg文件过早并且文件中的jdk或dll类库文件目录没有设置对

       d)、rp问题。。。。。。