2013-01-15 37 views
0

我有負載均衡器負載均衡兩個節點之間的負載。刪除用於負載平衡的JSESSIONID

當用戶註銷時,我將返回相同的登錄頁面。如果用戶登錄到節點1,註銷後,我想要用戶到節點2。

放入Load Balancer的重定向規則不起作用(規則如下所述)。所以,當用戶註銷時,我正在考慮刪除JSESSIONDID,現在假設它現在可能會轉到另一個節點。

在註銷之前,我需要使會話失效。如果我按照下面的步驟,

1. Remove JSESSIONID 
2. session.invalidate(); 

在上述情況下,如果是JSESSIONID無效會話之前刪除,否則無效會話?因爲SESSIOND ID已被刪除

1. session.invalidate(); 
2. Remove JSESSIONDID 

在這種情況下,我已經使會話失效。那麼,我能否刪除JSESSIONID?

重定向規則

if (($url == "loginPageURL") && (http.getcookie("JSESSIONID") == "")) 
{ 
http.setcookie("JSESSIONID", ""); 
} 
+1

只是出於好奇,我不強迫用戶到另一個得到點節點。這就是負載均衡器要注意的事,對吧? –

回答

0

這可能不過工作,我不認爲這是負載平衡器真的,負載平衡器應該平衡在服務器和路由用戶負載的服務器中的一個服務器池,這樣如果一臺服務器關閉或完全佔用,用戶仍然可以在其他服務器上使用該應用程序,而不會注意到這一點。將它們粘貼到一臺服務器上會使您的Web服務器沒有回退計劃。

相反的,你應該嘗試使用負載平衡器具有某些共享會話技術,使所有服務器可以共享會話對方

+0

面臨的問題是,用戶不關閉瀏覽器,並且一次又一次地將負載路由到同一臺服務器上。僅1臺服務器的併發性就越來越高。所以,註銷後,我希望用戶擊中另一個節點。 –

+0

在這種情況下,您可能需要檢出爲什麼負載平衡器這樣做,並且您需要通過這種方式找出確切的負載平衡器決定路由用戶,您可能還需要清除其他cookie以使負載均衡器認爲這是一個新請求 –

+0

「 _you可能還需要清除其他cookie以使負載均衡器認爲它是一個新的請求_「我正在清除所有cookie ..但是,我在上面關於JSESSIONID的問題中提到了我的問題。你能再看看那個......嗎? –