IBM Websphere 集群会话共享问题解决办法

遇到一应用部署环境以下图:服务器

 

两台HTTP SERVER(如下简称IHS)负责转发数据包,其中F5采用粘性模式,即一个用户在会话周期内的数据包必定会被转发到IHS中的一台,spa

但IHS 到Web Server之间的服务器选择确是随机分发的,致使请求会话没法保持,因为部署的为管理类系统,SESSION的保持是必须的。插件

WebSphere 有两种解决办法:3d

1. 所有WebSphere Server 会话广播,即某台机器会话更变时通知其余全部Server。server

2. 在IHS 中修改配置,在IHS 和Server之间通讯也采用粘性会话。xml

 

因为目前服务器的数量和用户量不适合采用 办法1,广播模式的成本较高,全部采用 办法2,具体修改以下:blog

1. 前提条件:进程

配置好IHS插件,使得Websphere 管理节点能管理两台IHS(生成插件->传播插件),并重启IHS。部署

1.1 IHS启动必须使用root,LINUX中80端口的占用只能有root进程进行,要使得Websphere 管理节点能管理该ROOT进程的IHS,NodeAgent也必须使用root启动.it

1.2 在管理节点中 vi %WebSphere_Home%/profiles/Dmgr1/config/cells/plugin-cfg.xml

修改ServerCluster的属性 IgnoreAffinityRequests="false", 使得IHS请求分发时会绑定机器。

该原理的实现是依赖于生成名为JESSIIONID的COOKIE,值相似于 00002eIFFjM-ql2ZityHVfjJmO5:187rufomo

其中分号后面的数值就能表明具体是哪一个Server(即哪一个JVM进程),

 

1.3 分别进入两台IHS服务器, vi %IHS_HOME%/Plugins/config/server名称/plugin-cfg.xml

一样修改ServerCluster的属性 IgnoreAffinityRequests="false"

 

1.4 进入WebSphere管理控制台 ,点击 环境->更新全局Web服务器插件配置->肯定。 

 

1.5 重启 IHS 服务,重复刷新,认证是否是请求都被转发到一台服务器。

说明: 在 “生成插件”这步骤中,IgnoreAffinityRequests又会被重置为true, 须要再次更改。

1.6 若是想更改会话使用的COOKIE名称,在WebSphere管理控制台中,进入 企业应用程序->点击待更改COOKIE名称的应用->会话管理->启用COOKIE,

更改COOKIE名便可,根据须要更改COOKIE域和COOKIE路径, 再返回 “会话管理” 勾选 “覆盖会话管理”。

相关文章
相关标签/搜索