Apache-2.2
stickysession 在 apache 和兩個 Glassfish 實例中不能正常工作
我有兩個在兩個 Glassfish 實例中執行的應用程序,我將我的 apache 配置為
sticky session
像這樣使用:ProxyPass / balancer://Appcluster/ stickysession=JSESSIONID
但這不是 100% 正確的,當客戶端從 App1 轉到 App2 時,它會更改一些實例。
我在導航器中檢查了 cookie,它向我顯示瞭如下內容:
我在中找到了另一個配置
web.xml
,如下所示:<session-config> <session-timeout> 30 </session-timeout> <cookie-config> <path>/</path> </cookie-config> </session-config>
因此,當我像這樣製作這條路徑時,一切都可以正常工作,但是它會在這兩個應用程序之間的每次導航時創建一個新的上下文。
現在我配置我的 Glassfish 並將 App1 設置為預設 Web 模組,這可以正常工作並且上下文是相同的,並且伺服器會創建一個像這樣的新 cookie:
但是當我嘗試連接NO Default Web Module時,它使用了兩個實例。
您能否提出正確的 Apache 和 Glassfish 配置以在集群環境中執行多個應用程序?
編輯
我通知了一些事情,所以當客戶端從 App1 到 App2 和 VS 時,每次它都會創建一個這樣的新 cookie:
+-------+----------------------------------------+ | APP | Cookie | +-------+----------------------------------------+-----+ | app1 | b5a1cd4befdc306f6e569d835b5e.instance2 | New | +-------+----------------------------------------+-----+ | app2 | b6caf890638a506216d625f7c82b.instance2 | New | +-------+----------------------------------------+-----+ | app1 | b6d1870ad8f3d044cc768b31e810.instance2 | New | +-------+----------------------------------------+-----+ | app2 | b6d84bf7b2a6fc37e3c9ffaf701b.instance2 | New | +-------+----------------------------------------+-----+ | app2 | b6d84bf7b2a6fc37e3c9ffaf701b.instance2 |Same | because i don't change the application +-------+----------------------------------------+-----+
- 為什麼每次都會創建一個新的cookie?
- 如何修復每個應用程序並使其獨一無二?
經過一周的搜尋,我終於找到了解決方案:
我使用了兩件東西,一件在兩個應用程序中,一件在伺服器 Apache 中:
所以在應用程序中,我們應該在web.xml中定義 cookie 的名稱:
APP1
<session-config> <session-timeout> 30 </session-timeout> <cookie-config> <name>jsessionapp1</name> <path>/</path> </cookie-config> </session-config>
APP2
<session-config> <session-timeout> 30 </session-timeout> <cookie-config> <name>jsessionapp2</name> <path>/</path> </cookie-config> </session-config>
在伺服器 Apache 中,我們在**/etc/httpd/conf/httpd_proxy.conf中修復了****stickysession**的名稱:
ProxyPass / balancer://Appcluster/ stickysession=jsessionapp1|jsessionapp2|jsessionappN
我不知道是否有比這更好的解決方案,如果是的話,我會很高興認識他們。