IBM Websphere 集群會話共享問題解決辦法


遇到一應用部署環境如下圖:

 

兩台HTTP SERVER(以下簡稱IHS)負責轉發數據包,其中F5采用粘性模式,即一個用戶在會話周期內的數據包一定會被轉發到IHS中的一台,

但IHS 到Web Server之間的服務器選擇確是隨機分發的,導致請求會話無法保持,由於部署的為管理類系統,SESSION的保持是必須的。

WebSphere 有兩種解決辦法:

1. 全部WebSphere Server 會話廣播,即某台機器會話更變時通知其他所有Server。

2. 在IHS 中修改配置,在IHS 和Server之間通信也采用粘性會話。

 

由於目前服務器的數量和用戶量不適合采用 辦法1,廣播模式的成本較高,所有采用 辦法2,具體修改如下:

1. 前提條件:

配置好IHS插件,使得Websphere 管理節點能管理兩台IHS(生成插件->傳播插件),並重啟IHS。

1.1 IHS啟動必須使用root,LINUX中80端口的占用只能有root進程進行,要使得Websphere 管理節點能管理該ROOT進程的IHS,NodeAgent也必須使用root啟動.

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路徑, 再返回 “會話管理” 勾選 “覆蓋會話管理”。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM