關於Squid的Session保持
Squid 如何實現Session保持?
我的實驗場景:
Squid(Port:80)後有兩個Tomcat分別是www1,www2(Port:8080)
Squid配置:cache_peer 10.10.4.10 parent 8080 0 originserver no-query name=www1 sourcehash no-netdb-exchange default
cache_peer 10.10.4.11 parent 8080 0 originserver no-query name=www2 sourcehash no-digest
cache_peer_domain www1 www.test.com test.com
cache_peer_domain www2 www.test.com test.com過程:
1、www1的Tomcat啟動,客戶端通過Squid訪問頁面,註冊並且登錄網站。
2、www2的Tomcat啟動,www1的Tomcat關閉。客戶端刷新頁面,發現用戶是退出狀態。
結果:
客戶端的Session沒有保持。
請問各個大蝦,如何用Squid的做Session保持。或者其它辦法呢?
[ 本帖最後由 zhgypg 於 2009-2-17 21:17 編輯 ]
《解決方案》
你保持這個的目的是什麼?通信完了,自然就斷了啊
《解決方案》
回復 #2 dreamice 的帖子
目的是如果後端有WEB SERVER掛了,讓客戶端感覺不到有任何變化,自動的切換到另外的WEB SERVER,登錄狀態不變。
《解決方案》
server掛了,登陸狀態不可能是不變的
squid用sourcehash其實是對client端ip進行hash的,保證一個ip過來的請求只會到一台後端server,從而保證session一致的,如果一台server掛了,squid就會rehash了
《解決方案》
這個要web伺服器端做處理,程序上使用共享的session池。 這樣任意一台伺服器都能獲取session數據。
《解決方案》
回復 #5 Dalamar 的帖子
估計session多了,是有限制的