iis请求转发超时 利用IIS应用请求转发ARR实现IIS和tomcat整合共用80端口 - IIS - 服务器之家

服务器之家

专注于服务器技术!
当前位置:首页 > Web服务器 > IIS

iis请求转发超时 利用IIS应用请求转发ARR实现IIS和tomcat整合共用80端口

发布时间:2017-04-07 来源:服务器之家

 现在网上流传的实现iis和tomcat共享80端口的方法是基于isapi_redirect插件实现的, 我的实现方法不同, 原理相似,具有更好的优点.

先说下基于isapi_redirect缺点,java 项目作为iis下的一个虚拟目录存在, iis下的项目使用顶级域名, tomcat下的项目只能作为二级目录访问;

例如iis下项目 使用访问, 则tomcat下的项目只能 /tomcatproject 这么访问, 如此变得不友好了.

我的实现方式, 利用IIS的应用程序请求路由 ARR (application request route) 来实现请求转发.

"共用80端口"示意

大致步骤( ARR使用请参考上篇文章或自行百度), 在iis上安装ARR, 配置2个server farm (iis应用使用一个iisFarm,tomcat使用一个tomcatFarm), 每个server farm中只有一台机器即localhost,端口使用自己应用端口(如上图iis 应用使用8080,tomcat应用使用8090) , 每一个server farm 都设置url重写routing rules规则, 规则中根据访问url的不同转发给不同的serverFarm处理.

场景一 使用不同的域名访问

iis下的某个应用域名为, tomcat下的某个应用域名.

iisfarm使用的routing rules.

根据上图设置, 只有域名下的80端口的http请求 iis 会交给ARR中的iisFarm进行处理, iisFarm中只有localhost:8080的机器,即请求转交给了8080端口的iis应用负责处理.

tomcatFarm routing rules设置

同理域名下的80端口的http请求 iis 会交给ARR中的tomcatFarm进行处理, tomcatFarm中只有localhost:8090的服务器, tomcat工作在8090端口, 所以请求是tomcat在处理.

场景二 使用二级目录访问