设为首页 收藏本站
查看: 793|回复: 0

[经验分享] IIS7 + Tomcat6 整合笔记以及原理分析

[复制链接]

尚未签到

发表于 2015-11-15 10:17:33 | 显示全部楼层 |阅读模式
  假设主机域名为:www.host1.com(也可以是localhost)
  需求一:假如${TOMCAT_HOME}/webapps下有一个名为jsp的web目录(或者jsp.war),我们想以http://www.host1.com/jsp访问jsp项目
  步骤1:
下载isapi_redirect-版本号.dll文件作为IIS与TOMCAT的接口,我下载的是isapi_redirect-1.2.27.dll
下载地址:http://apache.justdn.org/tomcat/tomcat-connectors/jk/binaries/win32/
然后把该文件放入${TOMCAT_HOME}/conf下
  步骤2:
建立如下注册表文件并执行
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Jakarta Isapi Redirector/1.0]"log_file"="D://Software//apache-tomcat-6.0.18//logs""log_level"="debug""worker_file"="D://Software//apache-tomcat-6.0.18//conf//workers.properties""worker_mount_file"="D://Software//apache-tomcat-6.0.18//conf//uriworkermap.properties""tomcat_start"="D://Software//apache-tomcat-6.0.18//bin//tomcat.bat start""tomcat_stop"="D://Software//apache-tomcat-6.0.18//bin//tomcat.bat stop""extension_uri"="/jakarta/isapi_redirect-1.2.27.dll"
注意修改与tomcat相关的路径(在我的系统中,tomcat安装目录为“D:/Software/apache-tomcat-6.0.18”)
  步骤3:
在tomcat/conf下建立两个文件
文件1:workers.properties
  # 工作站的名称任意,但须注意前后一致,多个工作站以“,”分割worker.list=ajp13w # 工作站的类型:ajp13是IIS与Tomcat通讯协议的名称worker.ajp13w.type=ajp13 # 注意此处的host需要与主机或者设置域名的名称一致worker.ajp13w.host=www.host1.com# worker.ajp13w.host=localhost # ajp13协议的通讯端口worker.ajp13w.port=8009 # 负载因子worker.worker1.lbfactor=1
  
文件2:uriworkermap.properties
# 当前域名下上下文路径为jsp的请求,转发给ajp13w工作站处理/jsp/*=ajp13w/jsp=ajp13w# 当前域名下的所有请求都转发给ajp13w工作站处理# /*=ajp13w# 当前域名下,所有.jsp的请求都转发给ajp13w工作站处理# /*.jsp# 当前域名下,除了.html的请求,其他都转发给ajp13w工作站处理# !/*.html
  
步骤4:
在IIS管理器中的“ISAPI和CGI限制”里面右键添加isapi_redirect-1.2.27.dll,并设定“允许执行扩展路径”,描述名可取jakarta
  步骤5:
在Default Web Site上右键添加虚拟目录,别名可取jakarta,路径指向${TOMCAT_HOME}/conf,即isapi_redirect-1.2.27.dll所在目录。
接着单击Default Web Site,选择ISAPI筛选器,并右键添加筛选器,名称可取jakarta,可执行文件选择isapi_redirect-1.2.27.dll。
然后点击虚拟目录,双击“处理程序映射”选择“编辑功能权限...”将所有权限选上
  步骤6
重启IIS服务器和Tomcat。
访问http://www.host1.com/jsp
  
需求二:假如有一个新域名www.host2.com(可以通过在C:/Windows/System32/drivers/hosts文件里添加127.0.0.1 www.host2.com模拟),我们想以http://www.host2.com访问需求一中所述的jsp项目
  步骤1:
配置${TOMCAT_HOME}/conf/server.xml,增加一个虚拟主机:
<Host name="www.host2.com"  appBase="webapps/jsp"
unpackWARs="true" autoDeploy="true"
xmlValidation="false"
  xmlNamespaceAware="false">
</Host>
关于server.xml格式各个标签的意义请查看Tomcat相关的文档。
  步骤2:
由于jsp已视为一个站点,所以根据Tomcat站点的目录规范,需要在jsp目录下新建ROOT目录,并且将原jsp文件夹下的所有文件剪切到ROOT目录下
  步骤3-6请参见需求一中的步骤1-4,其中文件uriworkermap.properties的内容相应应改为:/*=ajp13w
  步骤7:
网站节点上右键新建网站,取名任意,物理路径可以选择${TOMCAT_HOME}/webapps/jsp,方便设置由IIS来解析静态文件,如html和一些图像文件等,我根据习惯设置的是C:/inetpub/www.host2.com,其中,www.host2.com是我新建的目录。
然后主机名填写www.host2.com,并选择“立即启动网站”
  步骤8:
在网站列表的www.host2.com上右键添加虚拟目录,别名可填jakarta,路径指向${TOMCAT_HOME}/conf,即isapi_redirect-1.2.27.dll所在目录。
接着单击www.host2.com,选择ISAPI筛选器,并右键添加筛选器,名称可取jakarta,可执行文件选择isapi_redirect-1.2.27.dll。
然后点击虚拟目录,双击“处理程序映射”选择“编辑功能权限...”将所有权限选上
  步骤9:
重启IIS服务器和Tomcat。
访问http://www.host2.com
  
原理浅析:
简单地说,就是IIS不能解析jsp文件,所有与jsp文件相关的请求,IIS都需要转发给Tomcat处理,所以,我们的配置过程都是围绕着如何实现正确转发进行的。
  上述注册表文件和workers.properties文件,仅是指定了一些必要的路径、协议、端口号和工作站名称等一些较为固定的信息。相对于这两个文件来说,uriworkermap.properties和server.xml这两个文件与配置成功与否关系更为紧密。前者直接决定了需要转发给Tomcat处理的请求信息,后者则在Tomcat站点的配置上起了关键作用。
  首先,当一个http请求(如http://host[:80]/context)传递到80端口时,IIS服务器会过滤掉端口号,将请求地址改为host/context形式进行进一步分析
接着通过host名称找到相应的网站,并根据uriworkermap.properties文件,决定此条请求是否转发
  如果不转发,则按照普通流程处理该请求;否则,转发给Tomcat处理,并等待其处理结果,再响应给客户端。
对于转发给Tomcat的请求,Tomcat在server.xml中寻找名为host的虚拟主机,并映射到appBase目录,然后根据context进行后续操作。具体过程请查看相关资料
  
  IIS与Tomcat服务器的一些对应关系:
IIS   Tomcat(server.xml)
根节点   Engine
网站   Host
网站名称  Host:<Alias>
网站.主机名  Host.name
网站.物理路径  Host.appBase
虚拟目录  Context
  
配置经验:
一般来说,在整合IIS和Tomcat之前,首先应该确定能够使用类似http://host:8080/context网址访问Tomcat的站点,以便在配置
  IIS过程出现问题时,分辨是IIS的问题还是Tomcat的问题
由于IIS和Tomcat是通过jk连接的,所以,在整合前,可以将两个服务器视为互相独立的,保证两个服务器均可以正常访问后,再考虑正确转发的问题
             版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139425-1-1.html 上篇帖子: Windows 7 下配置IIS,并且局域网内可访问 下篇帖子: 清除服务器IIS缓存的常用方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表