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

[经验分享] win2003+IIS6+Tomcat5+jk整合

[复制链接]

尚未签到

发表于 2018-12-4 07:19:45 | 显示全部楼层 |阅读模式
目的:    实现IIS6和Tomcat5的整合运行。  预备:
  首先要说的是我这里整合组合是:Win2003+IIS6+Tomcat5+jk。如果您要整合的系统不是这个组合,这篇文章可能对你没有没有什么帮助,但是我极力劝大家采用这个组合,甚至是相同的版本,因为从别人和自己的经验来看,很多环境的配置或程序的运行都和所运行程序的版本有很大关系,特别是 Tomcat,Mysql,Apache,linux之类。这就是为什么有的系统至今都是用的Apache1.3 tomcat4.0,也是为什么好的开发团队都需要一整套的开发环境配置管理。和我这相同的配置,严格采用下面的架设步骤我都不敢保证你能整合成功,更别说其他版本了。
  Windows2003 和IIS6大家应该都是一样的.网上有的文章也介绍XP或者IIS5的整合.我觉得没有必要在XP的系统上整个IIS,装IIS拿来做服务器的,做服务器就用服务器的操作系统.我这里Tomcat的版本是5.0.28算是比较稳定的一个版本,没有采用jk2而采用jk是因为Apache已经明确声明不再对 jk2支持,想起这点就想起几年前用jk2整合Apache和Tomcat了,当时说jk2比jk怎么怎么好,看来这世上没有一件事情是真的.jk的版本是最新的1.2.20,没有用过其他版本,而且现在Apache上面也下不到其他版本了.
  整合步骤:
  如果你只想架设服务器而不想考虑其中细节问题,请尝试按照下面的步骤整合。如果你按照下面的步骤来了而且成功那么恭喜你,如果没有成功也很正常,可以看看后面的“要注意的问题”。在这里我们统一架设Tomcat的安装目录为D:\Tomcat5.0,新建的站点为www.crazycow.cn,新建的虚拟目录为blog。服务器上有一个内容为空的目录H:\Inetpub\www.crazycow.cn,还有一个目录为H:\Inetpub\ blog.crazycow.cn,这是WEB应用的物理位置,其下面有个简单的test.jsp文件,只是用来打印当前时间。
  1,为IIS写注册表
  打开注册表编辑器:regedit,选中"HKEY_LOCAL_MACHINE\SOFTWARE",新建项 "Apache Software Foundation",然后选中"Apache Software Foundation",再新建项 "Jakarta Isapi Redirector",然后选中"Jakarta Isapi Redirector",再新建项"1.0",然后再选中"1.0",在这一项中新建以下5个字符串值,名称和值分别为(不包括等号分界符,下同):
  =========================================================================
  extension_uri=/jakarta/isapi_redirect.dll
  worker_file=D:\Tomcat5.0\conf\workers.properties
  worker_mount_file=D:\Tomcat5.0\conf\uriworkermap.properties
  log_file=D:\Tomcat5.0\logs\isapi.log
  log_level=info
  ==========================================================================
  如果你觉得麻烦,请新建文本文件,输入以下内容,保存并更名为jakarta.reg文件,双击导入注册表,也可以达到和上面一样的效果.
  ===========================================================================
  Windows Registry Editor Version 5.00
  [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation]
  [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector]
  [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
  "extension_uri"="/jakarta/isapi_redirect.dll"
  "worker_file"="D:\\Tomcat5.0\\conf\\workers.properties"
  "worker_mount_file"="D:\\Tomcat5.0\\conf\\uriworkermap.properties"
  "log_file"="D:\\Tomcat5.0\\logs\\isapi.log"
  "log_level"="info"
  =================================================================================
  2,建立配置文件
  按照注册表里所写的,在D:\Tomcat5.0\conf目录下建立两个配置文件,workers.properties和uriworkermap.properties其内容分别为:
  workers.properties的内容:
  ===============================================================================
  worker.list=ajp13
  worker.ajp13.type=ajp13
  worker.ajp13.host=www.crazycow.cn
  worker.ajp13.port=8009
  ========================================================================
  uriworkermap.properties的内容:
  =========================================================================
  /*.jsp=ajp13
  /*.do=ajp13
  ==========================================================================
  3,为jk建立物理目录
  从Apache的网站上下载jk的1.2.20版本,实际上现在就只有一个isapi_redirect.dll文件。在 D:\Tomcat5.0\bin目录下建立新目录jakarta,将isapi_redirect.dll复制到里面。
  4,建立新网站
  打开IIS管理器,在左侧网站一栏新建网站:www.crazycow.cn,其目录指向上面提到过的空目录H:\Inetpub\www.crazycow.cn,让网站有执行(如ISAPI应用程序或CGI)的权限
  5,设置筛选器
  在IIS管理器左侧网站下面选中新建的网站www.crazycow.cn,右键选择属性,在ISAPI筛选器标签页添加筛选器,名字为jakarta,路径为isapi_redirect.dll的路径名,即D:\Tomcat5.0\bin\jakarta\isapi_redirect.dll。如果成功重新进入属性页,则该新建的筛选器会有一个绿色向上箭头,优先级为高,这说明jk模块加载成功。
  6,为jk建立虚拟目录
  选中网站www.crazycow.cn,新建虚拟目录,别名为jakarta,路径为D:\Tomcat5.0\bin\jakarta,使其有执行(如ISAPI应用程序或CGI)的权限。
  7,为自己的应用建立虚拟目录
  选中网站www.crazycow.cn,新建虚拟目录,别名为blog,路径为H:\Inetpub\blog.crazycow.cn,使其有执行(如ISAPI应用程序或CGI)的权限。
  8,新建应用程序扩展
  在IIS管理器左侧网站下面选中Web服务扩展,添加一个新的Web服务扩展,扩展名为jakarta,添加要求得文件为D:\Tomcat5.0\bin\jakart\isapi_redirect.dll,并设置扩展状态为允许。
  9,测试
  打开Tomcat服务器,修改h:\WINDOWS\system32\drivers\etc\hosts文件,让www.crazycow.cn的域名指向127.0.0.1,打开IE,输入http://www.craycow.cn/blog/test.jsp,回车,如果出现当前时间,那说明你配置已经成功。
  注意的问题:
  刚才说了,如果你没有配置成功也很正常,看下面的问题你注意了没有。我将对应上面的步骤分别解释
  1,应该没有什么问题,以前的版本有直接的安装程序,现在却没有了。手册上还说可以直接写配置文件不写注册表,我没有试,主要是不清楚原理。
  2,注意你的两个配置文件workers.properties和uriworkermap.properties中的两个worker是不是都叫 ajp13,有没有拼写错误.还有如果你配置网站时做了主机头设置,那你workers.properties文件中worker.ajp13.host 的值应该是www.crazycow.cn而不是localhost
  3,要注意IIS要对这个jakarta目录有足够的权限.如果你的筛选器添加失败很有可能是权限的原因.
  4,应该也没有什么问题,不过你可以测试一下你建立的网站,比如在H:\Inetpub\www.crazycow.cn下放置一个简单的 index.html文件,看能不能正常访问。在这里,我们还可以随便敲一个http://www.crazyoc.cn/xxx.jsp,然后再看 IIS的访问日志,报的是404.0或者404.3错误,前者说明文件或目录无法找到,后者说明文件或目录无法找到:MIME映射策略禁止该请求。
  5,这里有可能出现ISAPI筛选器不能加载的问题,状态一栏是红色箭头。打开系统事件查看器,如果发现"HTTP 筛选器 DLL D:\ Tomcat5.0\bin\jakarta\isapi_redirect.dll 加载失败。数据是错误。",那加载失败的原因应该是权限问题,特别是NTFS文件系统。因为需要IIS加载isapi_redirect.dll,所以IIS对它要有权限,所以可以对D:\Tomcat5.0\bin目录添加IIS_WPG和IUSR这两个用户(也有可能要对D:\Tomcat5.0\conf添加权限)。再重新加载一边,如果还没有成功,那我也没有办法了,只能换个FAT32系统或者其他jk版本,再或者看事件查看器,到网上搜解决办法。
  如果筛选器加载成功,到这一步,我们还可以做个小小的测试,随便敲一个http://www.crazyoc.cn/xxx.jsp,再看IIS日志,这时报报的错是:404.2,文件或目录无法找到:锁定策略禁止该请求。这也说明筛选器已经加载成功,只是没有进一步处理。
  6,7,8步也应该没有什么问题,除了添加新的Web 服务扩展jakarta之外还要使它允许。另外同样要注意权限的问题,因为涉及到Internet访问,你的虚拟目录好像也应该有IUSR这个权限。还有就是注意拼写不要写错,比如把jakarta写成了jarkata。
  到了第6步,我们还可以做个实验,在IE里输入http://www.crazycow.cn/blog/xxx.jsp,回车,这是IIS日志报的就是503错误了,服务器错,这说明你已成功了一大半,接下来就只剩下开Tomcat.
  9,如果你前面都对,只是你输入http://www.craycow.cn/blog/test.jsp,没有出现当前时间.那么还请查看还有你有没有开启 Tomcat,并在Tomcat引擎中是否加载了和IIS相对应的WEB应用?有的人访问jsp时,Tomcat日志里出现对 /jakart/isapi_redirect.dll的访问或者,直接出现乱码或下载jsp文件,都是这里的原因.
  总之大致的解决方法是,结合事件查看器的内容,IIS日志,Tomcat日志,一步步的排错,再到网上搜相关的资料.
  还要告诉大家的事,整个过程好像没有怎么重启IIS,也没有设置IIS5.0隔离模式.微软这方面做得确实没话说.
  遗留问题:
  虽然配置成功,但心里还是不爽,因为有好多东西没有真正弄懂.上面也可能多余的步骤.
  Windows 的软件特点是特别傻瓜,什么都帮你弄好了,或者弄得非常简单,你什么都不用懂,但Linux和Java之类的软件就是特别麻烦,你什么都要弄得很清楚。要将IIS和Tomcat整合起来,麻烦就来了。特别是这次在别人的机器上为自己的blog上线,好多问题都来了,权限啊,版本啊,好多东西平时拿到玩很简单,真正拿到用才是真正得考验。
  由于对Windows NTFS的权限机制不熟,对IIS不熟,特别是对"ISAPI塞选器"和"应用扩展"的的使用不熟,整个IIS和Tomcat整合的原理还不是很清楚,以上配置步骤每步实现什么功能也不是很了解,于是对IIS处理一个Web请求的整个流程也不是很清楚,我想这也是整合IIS和Tomcat痛苦的真正原因吧.如果哪位对此了解得比较清楚,请帮我回答下面的问题,最好能举例,多谢了.
  1,好多元素都用到了jakarta这个名字和isapi_redirect.dll,注册表,筛选器,虚拟目录,Web服务扩展...它们之间的关系是怎样的,有哪些可以换用其他的名字?
  2,IIS到底是哪一步用到了注册表的内容,筛选器还是Web服务扩展?IIS是如何读到注册表的内容的?为isapi_redirect.dll建立虚拟目录的原因是什么?
  3,我送一个http://www.crazycow.cn/blog/xxx.jsp过去,IIS是如何和Tomcat配合起来处理这个请求的?通过筛选器的isapi_redirect.dll,送到Web服务扩展的isapi_redirect.dll,还是直接送到Tomcat?我看到ASP.NET 的筛选器和Web服务扩展用的就是两个dll,那对于jsp,这两个功能一起做到isapi_redirect.dll去了吗?如果是的,那我用两个 isapi_redirect.dll分别实现功能也是一样的阿,可是没有成功.如果非要是同一个isapi_redirect.dll,那为什么要添加两次呢?


运维网声明 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-642986-1-1.html 上篇帖子: 如何开启tomcat的本地日志记录功能 下篇帖子: Tomcat Server.xml 标签详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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