之前写过IIS桥接Tomcat是通过isapi_redirect.dll,组件方式实现共用端口的,但是在Windows2012服务器 iis8.0版本中,配置完成后没有效果,比较抓狂,分析发现如下信息 : http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html,也就是说在iis7以上isapi_redirect.dll组件是不能很好的支持的,当然也不排除可以用,我自己测试在iis10中就可以用,不够稳定。

然后考虑了用nginx或apache反向代理的方式实现,这两个反向代理服务器都可以实现此需求,但是根据目前的客观条件客户只开放了一个外网端口且已经给iis使用,我们不能动已有的东西,反向代理服务器本身要占用一个端口,因此只能在iis上面想办法了,这块使用了Application Request Routing来解决,已经达到目的,下面说一下配置过程。

1.安装Application Request Routing环境,iis本次没有带这块组件需要去官网下载,如果服务器离线需要按顺序去下载离线安装包。

1.1离线安装包下载

1.stop iis
       2.下载安装 http://download.microsoft.com/download/5/7/0/57065640-4665-4980-a2f1-4d5940b577b0/webfarm_v1.1_amd64_en_us.msi
       3 .安装 http://download.microsoft.com/download/3/4/1/3415F3F9-5698-44FE-A072-D4AF09728390/ExternalDiskCache_amd64_en-US.msi
       4. http://download.microsoft.com/download/6/7/D/67D80164-7DD0-48AF-86E3-DE7A182D6815/rewrite_amd64_en-US.msi
       5. http://download.microsoft.com/download/6/3/D/63D67918-483E-4507-939D-7F8C077F889E/requestRouter_x64.msi
       6. 启动IIS服务或重启服务器

2.重启iis后关掉iis界面重新打开后界面会刷新出两个组件。

3.开启请求转发,此页面其他配置选择默认即可。

配置代理服务器信息

4.配置路由规则,选中代理的应用程序,双击URL重写-》添加规则-》选择反向代理,配置需要的路由规则。这块需要配置一个代理到tomcat的应用程序,应用程序名字需要与tomcat那边取的名字保持一致,不然会出现资源文件路径错误问题。

规则配置,如下图,这是我用的,配置完成后会在代理应用程序文件夹下生成一个web.config文件这里面就是保存的路由规则。

也可直接覆盖配置文件实现,如下。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://33.61.33.5:9090/qysb_sx/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

5.遇到的问题。

配置起来还是比较快的,主要就是实现代理功能后系统资源路径被改变导致很多地方访问不了,保持iis应用程序名和tomcat程序访问名一致即可。

IIS+Tomcat功能iis端口2的更多相关文章

  1. IIS Tomcat共享80端口

    为什么有这种需求, 原因是这样的, 公司有一个Java的web项目,在另一台服务器A上,最近老板一时兴起,想把他合并到这台稳定点的服务器B上,服务器B上使用IIS来寄宿asp.net 网站, 怎么办呢 ...

  2. IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容

    环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: 以下是使用IIS的域名: http://www.formuch.com/ http://www.fo ...

  3. (转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容

    from :http://www.cnblogs.com/wuyou/p/3455619.html 环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: ...

  4. IIS和tomcat共用80端口

    IIS和tomcat共用80端口 很多机器都需要同时使用tomcat和iis两个服务器以部署不同的网站,而解决共用80端口的问题也经常遇到,今天实际操作了一回,以下是具体步骤: 实现tomcat和ii ...

  5. tomcat和iis共用80端口的简明手册

    ​​对于使用tomcat-connector实现iis与tomcat实现80端口共用的问题,网上的信息异常混乱,很多地方误人子弟,浪费时间.本文给出简明手册式的做法: 首先列出我们需要做的事项: 1. ...

  6. 实现tomcat与IIS共用80端口

    一.80端口被system占用的问题 目前生产环境的需要两种方式网站发布: [1].使用IIS发布.net开发的网站: [2].使用tomcat发布java开发的网站: 启动tomcat的时候发现无法 ...

  7. 阿里云服务器win2003下iis整合tomcat共享80端口

    阿里云服务器win2003下iis整合tomcat共享80端口 很多机器都用tomcat跟IIS部署不同网站.最近买了阿里云的服务器.于是也想玩一下.网上百度了很多方法.但是都有缺陷说的不是很清楚.通 ...

  8. tomcat与IIS在多IP服务器下的支持

    同一个服务器下,双IP(或更多IP),实现tomcat与IIS公用80端口. 操作其实也很简单的,首先禁用iis的套接字池,iis绑定一个ip,然后tomcat在绑定另一个ip,最后重启下服务器即可. ...

  9. 整合iis+tomcat

    目的: 将 Tomcat与 IIS整合在一起,共用 80端口.让 iis可以解析 *.asp. *.aspx. *.jsp. servlet和 *.do文件: 第一步:准备工作. 在你的 Tomcat ...

随机推荐

  1. I/O模型系列之五:IO多路复用 select、poll、epoll

    IO多路复用之select.poll.epoll IO多路复用:通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作. 应用:适用于针 ...

  2. 财务平台亿级数据量毫秒级查询优化之elasticsearch原理解析

    财务平台进行分录分表以后,随着数据量的日渐递增,业务人员对账务数据的实时分析响应时间越来越长,体验性慢慢下降,之前我们基于mysql的性能优化做了一遍,可以说基于mysql该做的优化已经基本上都做了, ...

  3. 吐血记录微信小程序授权获取Unionid及linux下使用bouncycastle解密用户数据 遇到的坑

    背景 公司小程序上线了,发现系统无法拿到一些用户的UniondID.但是上线前的测试一切都是正常的. 坑1 经排查,发现一些用户通过下面的接口无法得到unionid https://api.weixi ...

  4. 一次对JDK进行"减肥"的记录

    起因 最近做的一个小项目,因为要涉及到批量部署,每次在部署之前都需要在各个主机上先安装jdk环境(为了使用jdk自带的工具如jps等,所以没有单纯安装jre),但是因为jdk文件太大(以jdk-8u1 ...

  5. IntelliJ IDEA中项目报错org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 8 或maven操作compile报resource使用utf8这样的编码错

    问题:项目开发工具已经setting成utf-8 并且项目各方面的配置文件包括maven这些的pom.xml里的配置都已经设置为utf-8 但是还报错 IntelliJ IDEA中项目报错org.xm ...

  6. django QuerySet

    Django对数据库的封装1——QuerySet 发布时间:2018-02-28 来源:网络 上传者:用户 关键字: manager 数据库 记录 影响 发表文章 摘要:   Django对数据库的操 ...

  7. 003 爬虫持久化的三个不同数据库的python代码

    MongoDB import pymongo # 1.连接MongoDB服务 mongo_py = pymongo.MongoClient() print(mongo_py) # 2.库和表的名字:有 ...

  8. c++ 入门 之 hello world 和基本语法

    1,linux系统上如何跑c++程序 1,vim一个hello.cpp,内容如下: #include <iostream> using namespace std; int main() ...

  9. 软件测试为什么需要学习Linux的知识?Linux学到什么程度?-log5

    ​软件测试为什么需要学习Linux的知识?学到什么程度?-log5 Dotest软件测试学堂-董浩 公司目前90%的服务器操作系统不是Windows,而是Linux(RedHat.Debian.Cen ...

  10. 前端使用moment.js 获取当前时间往前的时间

    moment().format("YYYY-MM-DD HH:mm:ss"); //当前时间 moment().subtract(, "days").forma ...