IHS+WEBSPHERE 静态页面分离方案
前提:Websphere和IHS 都已经配置好了,同时HIS只是起到一个转发的功能,Websphere默认是使用File Serving servlet 进行静态文件的处理,这样的话,压力都集中在了Websphere上面。具体的原理可以参照下面的网址,说得很详细
http://www.ibm.com/developerworks/cn/websphere/techjournal/0211_brown/brown.html
目标:把Webpshere应用中的静态的内容分离开了,部署在IHS上面,如果是访问静态文件,直接通过HIS处理返回内容,如果是动态的则交给Websphere处理。
第一步:关闭Websphere的 File Serving servlet 服务
(1) 找到在Websphere中部署的Web应用中的 /WEB-INF/ 目录下面的 ibm-web-ext.xmi 文件
如下图所示:
(2) 如果在(1)中没有找到 ibm-web-ext.xmi 文件,则把附件中的 ibm-web-ext.xmi 文件拷贝到这个目录就可以。一般用ANT工具打的war包都没有这个文件,必须手工的添加上去。
(ibm-web-ext.xmi 文件主要是用来配置应用的一些附加属性,可以手工的修改)
(3) 打开 ibm-web-ext.xmi 文件,找到 fileServingEnabled 属性项,把它设为 flase, 默认是ture。如下图所示
(4) 重启Websphere
(5) 重启完后,如果是访问Web应用中的静态文件,是会报404错误的,这是正常现象,因为Websphere中的 File Serving servle 服务功能已经关闭了。
第二步:重新生成插件
(1)Websphere的插件配置文件 plugin-cfg.xml 在类似这样的路径下面/IBM/WebSphere/AppServer/profiles/default/config/cells/szkingdo-zhaozmNode01Cell/nodes/webserver1_node/servers/webserver1/
在没有生成插件之前,plugin-cfg.xml 文件中有如下代码
<UriGroup Name="default_host_server1_szkingdo-zhaozmNode01_Cluster_URIs">
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/*"/> </UriGroup>
(2) 登陆Websphere控制台,如下图页面
点击生成插件按钮,重新生成插件,更新 plugin-cfg.xml 文件
(3)plugin_cfg.xml 文件中(1)中的代码发生了变化,如下
<UriGroup Name="default_host_server1_szkingdo-zhaozmNode01_Cluster_URIs">
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/*.do"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsp"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsv"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsw"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/j_security_check"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/ibm_security_logout"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/servlet/*"/>
</UriGroup>
第三步:配置HIS中的 httpd.conf 文件
(1) 设置HIS的默认路径,打开 /IBM HTTP Server/conf/ 类似这样的目录下面的 http.conf文件,找到如下的两句
DocumentRoot "D:/Program Files/IBM HTTP Server/htdocs/zh_CN"
<Directory "D:/Program Files/IBM HTTP Server/htdocs/zh_CN">
可以把 D:/Program Files/IBM HTTP Server/htdocs/zh_CN 设置为新的目录
第四步:把应用中的静态文件拷到 HIS上的默认路径中去
如下图中的 admin,file,web 文件夹下的静态文件都是从websphere应用中拷贝过来的