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

IIS6.0+Tomcat共用80端口

程序员文章站 2022-03-24 09:16:43
...


问题场景:之前公司的网站是外包开发用ASP.NET 、PHP语言开发,使用Windows平台IIS服务器发布;一个IIS服务器配置多个网站共用80端口,那么我现在用java开发的网站就不能使用80端口,意味着配置不了域名;除非购买新的服务器。


解决方案通过工具 isapi_redirect-1.2.14.exe  做端口映射,IIS使用80端口,当IIS服务器收到请求后通过工具转发到对应的Tomcat即可,tomcat端口根据自身情况配置。


详细步骤如下:

1.工具

    tomcat7 + isapi_redirect-1.2.14.exe + jdk1.8 + IIS6.0


2.配置环境

     (注意安装顺序)

   IIS6.0  =>  JDK  =>  Tomcat  => isapi_redirect,你可以按照这个顺序也可以不按照,

      但是顺序的前提是:IIS一定要优先于isapi_redirect 否则isapi_redirect安装会找不到IIS导致配置不正确,

                                   JDK一定要优先于Tomcat 否则安装Tomcat会找不到JRE导致无法安装。另外JDK也最好优先于isapi_redirect。


  2.1.配置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 
/你的tomcat/webapps目录下要配置的项目文件夹名称/*=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处理。

/你的tomcat/webapps目录下要配置的项目文件夹名称/*=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 


该文件为默认的配置,一般不需要修改,保证跟以上一致就行 

    验证isapi_redirect是否安装正确:isapi_redirect的安装目录可以自己定义,网上说必须要安装在tomcat跟目录,这个没必要。
安装完毕isapi_redirect后你会发现IIS默认网站下会出现一个虚拟目录jakarta

IIS6.0+Tomcat共用80端口

右击虚拟目录jakarta 查看属性


IIS6.0+Tomcat共用80端口

说明安装成功


   2.2. 配置IIS服务器

       

新建网站,名称随意

【网站IP地址】:(全部未分配)
【此网站的主机头】:域名(同tomcat\conf\server.xml <Host>标签的"name"属性中的域名相同)
【网站主目录路径】:虚拟路径+文件夹名(tomcat\conf\server.xml<Host>标签的"appBase"属性中的虚拟路径 加上<Context>子标签的"docBase"属性的文件夹名) 勾选【允许匿名访问网站】
【允许下列权限】:读取、运行脚本、执行 

在此网站下建立虚拟目录 名称:jakarta(必须)
【路径】: isapi_redirect 安装目录\bin (isapi_redirect.dll的目录)
【允许下列权限】:读取、运行脚本、执行


网站-->右键-->属性:
1)        【ISAPI筛选器】-->添加--> 【筛选器名称】:jakarta 【可执行文件】: isapi_redirect安装目录\bin\isapi_redirect.dll (isapi_redirect.dll文件)
2)        【文档】:-->添加-->【默认内容页】:比如index.jsp(对应网站默认首页) -->确定-->把其余的都删掉
ü  Web服务扩展-->右键-->添加一个新的Web服务扩展:【扩展名】:jakarta(必须)
【要求的文件】: isapi_redirect安装目录\bin\isapi_redirect.dll (isapi_redirect.dll文件)
勾选【设置扩展状态为允许】保存


  2.3.tomcat配置

     2.3.1.tomcat的conf下安装时候已经自动建立workers.properties,如果没建立,则手动建立文件workers.properties 
workers.properties内容如下(请更成换你自己的Tomcat和jdk目录: 

workers.tomcat_home=d:\tomcat\   
workers.java_home=d:\Java\jdk1.6.0_10  
ps=\   
worker.list=ajp13   
worker.ajp13.port=8009   
worker.ajp13.host=localhost   
worker.ajp13.type=ajp13   
worker.ajp13.lbfactor=1  
   2.3.2.建立文件uriworkermap.properties 
uriworkermap.properties内容如下: 
  
/*.jsp=ajp13  
/*=ajp13 /*增加让servlet等访问*/ 
  

     2.3.3. 将isapi_redirect.dll、workers.properties、uriworkermap.properties三个文件放至Tomcat下的conf目录里。 



3.启动,测试

   先启动tomcat,然后再启动IIS下的网站即可映射到tomcat

到此为止你就可以测试了。此时你输入你的域名就可以直接访问你的javaweb项目了,而不用再加8080端口了。当iis接受到一个jsp网站isapi_redirect会转发到tomcat处理,然后将处理结果再返回给客户。