windows server 2008r2 2012 r2同时用tomcat和iis,iis转发tomcat请求,解决服务器80端口冲突

前言:我看了网上很多文章,很多都不能完美解决windows服务器上同时用iis和tomcat的问题,有一些文章可以解决,可是演示的是老版本的windows server,步骤有差异,特写此文章与大家分享。该教程演示版本为windows server 2008r2,2003以上的版本都可以按照这个方法配置。

实现原理:
使用iis的处理程序映射功能,当文件为*.jsp时,转发给tomcat处理,处理完成后让iis把内容发送回给客户端,客户端看到的访问端口是80。

第一步:
安装服务器必要的环境和程序,安装顺序是非常有必要的,下面是软件安装的先后顺序:
IS6.0 => JDK => Tomcat => isapi_redirect
你可以按照这个顺序也可以不按照,但是顺序的前提是:IIS一定要优先于isapi_redirect 否则isapi_redirect安装会找不到IIS导致配置不正确,JDK一定要优先于Tomcat 否则安装Tomcat会找不到JRE导致无法安装。另外JDK也最好优先于isapi_redirect。
isapi_redirect下载地址:http://www.jb51.net/softs/186731.html
官网有新版的,不过最新版的在2008r2下不能正常使用,建议用安装版的,免去编辑注册表和生成文件的麻烦。

IS6.0 、 JDK 和 Tomcat的安装就不在此重复说了,需要的可以自行百度,网上很多这样的文章,写的比我好。相信在看这篇文章的读者对这三个程序的安装和配置已经很熟悉了。

建议把 isapi_redirect安装在tomcat的根目录。

注意:原来iis有部署其他网站的安装后如果不能正常访问,请把该网站的jakarta虚拟目录删除,然后点击iis管理器里的计算机名,点击isapi和CGI限制,删除jakarta 即可。

第二步:配置tomcat
在tomcat目录下的conf目录下找到server.xml,打开编辑,修改<host标签:修改示例:

 <Host name="域名"  appBase="C:/wwwroot/www/"
            unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	<Context path="" docBase="C:/wwwroot/www/Site" debug="0" reloadable="true"/>
     
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>

主要修改name、appBase和docBase,其中docBase为项目的目录。

本机输入http://localhost:8080
检查网站是否能正常访问。
注意:不用修改tomcat的8080端口为80!

第三步:iis配置
安装完毕isapi_redirect后你会发现IIS默认网站下会出现一个虚拟目录jakarta,如果没有请手动为要发布的网站添加:
选中网站,右键,添加虚拟目录,名称jakarta,物理路径选择isapi_redirect安装目录下的bin目录。

注意:网站设置的物理路径必须和tomcat配置的路径已经,否则iis会拦截出现404错误!

点击网站,点击ISAPI筛选器,右键点击空白处添加,筛选器名称jakarta,可执行文件选择isapi_redirect安装目录下的bin目录下的isapi_redirect.dll文件,确定。

下一步,点击网站,点击处理程序映射,右键点击空白处添加脚本映射…,请求路径填写*.jsp(如果用restful风格写的,请求路径填写*),可执行文件选择isapi_redirect安装目录下的bin目录下的isapi_redirect.dll文件,名称JSP,确定。

下一步,点击网站,点击默认文档,右键点击空白处添加,填写index.jsp,确定。

第四步:isapi_redirect的配置
打开isapi_redirect目录下conf目录,修改uriworkermap.properties文件,该文件的具体内容如下:

# uriworkermap.properties - IIS
#
# This file provides sample mappings for example wlb
# worker defined in workermap.properties.minimal
# The general syntax for this file is:
# [URL]=[Worker name]
 
/admin/*=wlb
/manager/*=wlb
/jsp-examples/*=wlb
/servlets-examples/*=wlb
/ecshoping/*=wlb
 
# Optionally filter out all .jpeg files inside that context
# For no mapping the url has to start with exclamation (!)
 
!/servlets-examples/*.jpeg=wlb
 
#
# Mount jkstatus to /jkmanager
# For production servers you will need to
# secure the access to the /jkmanager url
#
/jkmanager=jkstatus
/*.jsp=wlb
/*.action=wlb
/*.do=wlb
/*=wlb 

解释:wlb可理解为过滤器名称

/.jsp等等 为请求过滤的规则,isapi_redirect判断当iis收到该请求时交给tomcat处理。/ecshoping/=wlb 指定你要过滤的项目

继续修改文件,打开isapi_redirect目录下conf目录,修改workers.properties.minimal文件,该文件的内入如下:

# workers.properties.minimal -
#
# This file provides minimal jk configuration properties needed to
# connect to Tomcat.
#
# The workers that jk should create and work with
#
 
worker.list=wlb,jkstatus
 
#
# Defining a worker named ajp13w and of type ajp13
# Note that the name and the type do not have to match.
#
worker.ajp13w.type=ajp13
worker.ajp13w.host=localhost
worker.ajp13w.port=8009
 
#
# Defining a load balancer
# 
 
worker.wlb.type=lb
worker.wlb.balance_workers=ajp13w
 
#
# Define status worker
#
 
worker.jkstatus.type=status

至此,配置完成,可以通过80端口间接访问tomcat服务器了!
有问题欢迎评论留言!

猜你喜欢

转载自blog.csdn.net/ldkjsdty/article/details/83792053