IIS6.0+Tomcat共用80端口
问题场景:之前公司的网站是外包开发用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
右击虚拟目录jakarta 查看属性
说明安装成功
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处理,然后将处理结果再返回给客户。
上一篇: shellcode转换为汇编代码的方法
下一篇: 表格、表单