利用IIS应用请求转发ARR实现IIS和tomcat整合共用80端口
现在网上流传的实现iis和tomcat共享80端口的方法是基于isapi_redirect插件实现的, 我的实现方法不同, 原理相似,具有更好的优点.
先说下基于isapi_redirect缺点,java 项目作为iis下的一个虚拟目录存在, iis下的项目使用顶级域名, tomcat下的项目只能作为二级目录访问;
例如iis下项目 使用www.iisproject.com访问, 则tomcat下的项目只能 www.iisproject.com/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下的某个应用域名为www.iisproject.com, tomcat下的某个应用域名www.tomcatproject.com.

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

tomcatFarm routing rules设置
同理www.tomcatproject.com域名下的80端口的http请求 iis 会交给ARR中的tomcatFarm进行处理, tomcatFarm中只有localhost:8090的服务器, tomcat工作在8090端口, 所以请求是tomcat在处理.
场景二 使用二级目录访问
场景一使用了2个不同的域名, 如果只有一个域名或没有域名, 我们也是有办法的, 就是使用 域名/二级目录 或IP/二级目录的方式实现访问, 如 www.project.com/iis,www.project.com/tomcat 或192.168.0.10/iisproject ,192.168.0.10/tomcatproject方式. 实现方式和场景一几乎一样, 只是配置routing rules时, url 为www.project.com/iis开头的交给iisFarm处理, 为www.project.com/tomcat开头的交给tomcatFarm处理, 可以通过正则表达式,通配符搞定的.
以上两个场景, 无论使用域名访问,还是使用二级目录访问, 在外部客户端看来, iis应用和tomcat应用共用了80端口,目的达到.
利用IIS应用请求转发ARR实现IIS和tomcat整合共用80端口的更多相关文章
- 用 IIS 实现请求转发
最近部门要开发一个简单的APP,部分数据是现有项目已经存在的,为了方便维护,希望只提供一个交互的入口,并且协议的规则不变. 基于这个需求,有两套解决方案: 1.用代码将现有的api封装一层,对请求数据 ...
- iis和apache共用80端口,IIS代理转发apache
为什么共用80端口应该不用多说了,服务器上程序运行环境有很多套,都想抢用80端口,所以就有了共用80端口的解决方案. 网上很多的教程一般都是设置APACHE使用默认80端口,代理转发IIS的网站,II ...
- IIS和tomcat共用80端口
IIS和tomcat共用80端口 很多机器都需要同时使用tomcat和iis两个服务器以部署不同的网站,而解决共用80端口的问题也经常遇到,今天实际操作了一回,以下是具体步骤: 实现tomcat和ii ...
- IIS与Apache共用80端口方法
IIS与Apache共用80端口 http://www.cnblogs.com/haocool/p/3595282.html Windows server 2003服务器上安装有默认 IIS 6和Ap ...
- apache与IIS共用80端口冲突解决方法
如果同一台电脑安装了apache和iis,会提示80端口冲突,如何解决apache与iis 80端口冲突的问题呢,并且同时使用apache和iis 将apache设为使用80端口,IIS使用其它端口, ...
- IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容
环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: 以下是使用IIS的域名: http://www.formuch.com/ http://www.fo ...
- (转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容
from :http://www.cnblogs.com/wuyou/p/3455619.html 环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: ...
- IIS与Apache共用80端口
Windows server 2003服务器上安装有默认 IIS 6和Apache两个服务器,IIS运行的一个.net程序,apache运行php程序,现在想让它们同时都能通过80端口访问,设置起来还 ...
- 使用apache和IIS,共用80端口的一个解决方案【转】
将apache设为使用80端口,IIS使用其它端口,比如81,然后将apache作为IIS的代理. 在httpd.conf里面,取消下面四行的注释: LoadModule proxy_module m ...
随机推荐
- asp.net mvc 自定义身份验证
1.定义身份实体对象 /// <summary> /// 网站用户实体对象 /// </summary> public class DDTPrincipal : IPrinci ...
- asp.net mvc 自定义身份验证 2
控制成员角色 [Authorize(Rroles="Administator,SuperAdmin")] public class StoreManagerController:C ...
- 全自动ARP实时绑定BAT文件
全自动ARP实时绑定BAT文件 说明一下,这个BVS脚本,它会每六秒钟清除一次ARP缓存.并绑定网关.真正做到了实时防护! 代码如下:请另存为.BAT文件.再运行一下,就可以了 path c:\;c: ...
- 使用Scala实现文件单词计数
package com.dtapp.base import scala.io.Source object WCntApp { def main(args: Array[String]) { val f ...
- java开发常用工具
1.eclipse3.6 +浏览器插件+findbug+checkstyle+pmd+svn 2.plsql8.0对数据库的操作,存储过程的调试 3.Securecrt对linux服务器的操作 4.e ...
- 配置Chrome Driver
书中使用Firefox driver出现莫名问题,大概是firefox的版本太新了,懒得降级处理,故学习配置Chome driver进行测试. 1.到http://chromedriver.stora ...
- 如何解决pycharm输入中文报错问题
在pycharm中的python文件中输入中文会报错SyntaxError: 问题解决方法在文件开头添加 : # -*- coding:utf-8 -*- 每次添加都很麻烦,一劳永逸解决此问题的方法: ...
- 如何让你的UWP应用程序无缝调用几何作图
有时候需要编辑一些几何图形,如三角形,圆锥曲线等,在UWP应用中加入这些几何作图功能是件费时间又很难做好的事.其实Windows 10 应用商店中已有一些专业的几何作图工具了,那么能借来一用吗?答案是 ...
- CAD2012安装错误
安装CAD2012总是会出现各种错误,不能安装,特别是.NET Framework Runtime 4.0安装错误. 单独安装dotNetFx40_Full_x86_x64.exe会提示更高级的版本已 ...
- 用词法分析器Flex过滤日志
每日构造中,我的项目中 Visual Studio 的 MakeFile 后会产生大量信息,如下 Microsoft (R) Visual Studio Version 10.0.40219.1.Co ...