Daily Archives: April 11, 2006

地球共享网从apache web server到iis的移植

地球共享网从apache web server到iis的移植
tong# cngis.org
 
由于服务器资源有限,地球共享网西北分节点需与我们正开发的西部数据中心同处一个服务器,而西
部数据中心的开发团队熟悉iis,并打算使用 asp.net来开发。因此我们要做的,是将地球共享网从原
来的apache环境移植到win2k3/iis。
1. 移去apache server
2. 将jdk 1.4.2_06移去,升级成jdk 1.4.2_08(这是由于西部数据中心采用的arcims server要求至
少是08以上),jsr升级到 update 6
 
3.0 备份 原tomcat下的webapps/ROOT目录下内容(由于定制主页更改过)。保留c:subCenter目录不
变。
3.1 移去 tomcat 5.0,升级成tomcat 5.5,其中jsr选定最新的 jsr 1.5.0.60(即update 6),安装
成service
3.2 将5.5下的webapps/ROOT改名为tomcat-ROOT,将3.0备份的ROOT全部移进 webapps目录下
 
4. 安装iis 6
5. 新建站点 westdc.geodata.cn,将端口号改为 8087,以后westdc.geodata.cn将通过 8087进行访问,而西部数据中心占用原有的80端口。新站点可以指向任何地方,在实际运行时,通过 jk2导至
tomcat的root目录下。我使用了 wwwroot目录。
 
6. 从tomcat.apache.org下载jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip(使用了jk2——
由于它的配置复杂,已经不被tomcat官方支持——是由于jk2支持不同端口的uri映射,如6.2
workers2.properties [uri:*:8087/*]所示,至少现在我不知道如何使用jk来达到同样的目的)
6.1 将zip包里的 isapi_redirector2.dll和install4iis.js 复制到 tomcat 5.5的bin目录下
6.2 将 tomcat 5.5/conf下的 workers2.properties改成 workers2.properties-bak,创建新的
workers2.properties,内容如下:
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
 
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
 
[uri:*:8087/*]
worker=ajp13:localhost:8009
[uri:/tomcat-docs/*]
worker=ajp13:localhost:8009
 
7. 将westdc.geodata.cn网站暂时改名为 Default Web Site,然后cmd进入命令窗口,cd到 tomcat
5.5/bin下,执行cscript install4iis.js,将为 jk2创建必要的配置。将Default Web Site重新改回
westdc.geodata.cn。(我测试的时候,使用了 install4iis.js -s命令指定网站名,没有成功,所以
使用其缺少的网站名,创建可以成功)。创建结束后请检查如下内容:
7.1 注册表项应包括如下内容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationJakarta Isapi Redirector2.0]
"extensionUri"="/jakarta/isapi_redirector2.dll"
"serverRoot"="C:Program FilesApache Software FoundationTomcat 5.5"
"workersFile"="C:Program FilesApache Software FoundationTomcat 5.5
confworkers2.properties"
"authComplete"="0"
"threadPool"="20"
(路径根据 tomcat所在目录不同可能不同)
7.2 在westdc.geodata.cn的属性isapi tab里应该加了 一项指向 isapi_redirector2.dll条目,名字
可以随便,比如 Jakarta Filter等
7.3 在westdc.geodata.cn下创建了一个名为 jakarta的虚拟目录,权限为脚本和可执行
7.4 在iis 6里的服务扩展里添加了 isapi_redirector2.dll,命名任意
 
8. 打开C:Program FilesApache Software FoundationTomcat 5.5webappsROOTWEB-INFclassesconfsecInfo.xml,将里面的原先的 本机ip改成 ip:8087字样
 
9. 在tomcat 5.5 /conf下的 server.xml里的 localhost Host下,添加:
 <Context path="/DCenterWebService" docBase="C:subCenterDCenterWebService" />
  
 <Context path="/Metadata" docBase="C:subCenterWebShare" />
 <Context path="/Manage" docBase="C:subCenterDataCenterM" />
 
10. 重启www服务
11. 检查 http://localhost:8087,应该已经搞定,iis从8087上收到的request会被redirect到 tomcat的 8009执行
 
12. 西部数据中心也加载了isapi_redirector2.dll(由于西部数据中心将采用arcims,而arcims是需要 jsp的支持),现在使用 80端口,且 localhost/tomcat-docs 也会被redirect tomcat下面。所以,如果没有 jk2根据端口的pattern match,那么来自任何端口的虚拟server的根目录都会被重定位到 westdc.geodata.cn下,这不是我们想要的。