注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

红烧鱼

linux & windows management

 
 
 

日志

 
 
关于我
mac

专注IT基础架构设计与运维。 欢迎给我留言,或邮件沟通zjwsk@163.com

网易考拉推荐

win2003+IIS6+Tomcat5+jk整合  

2008-03-08 18:08:30|  分类: WEB |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一直都搞不定这个整合,终于把CrazyCow请出场,搞定这个历史遗留问题,特转过来供学习:
http://www.crazycow.cn/

  首先要说的是在整合的痛苦的过程当中,我就发誓如果整合成功,就要写这么一片文章给后人借鉴,而且一定要在搜索榜排名第一。

  目的:
  自己用java写了套blog程序,朋友那里有机器,但是他是搞.NET的,只能架IIS服务器。要是我自己有机器,绝对架Linux+Apache了,或者直接跑Tomcat,也就没有必要这么麻烦了。

  预备:
  首先要说的是我这里整合组合是: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,那为什么要添加 两次呢?

  评论这张
 
阅读(480)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017