0
所以這裏是場景,我有幾個負載平衡服務器,有一堆域指向負載平衡器IP。該網站根據所訪問的域名顯示不同的皮膚(此工作正常)。爲了保證會話的負載平衡,我使用了粘性會話,問題來自我所知道的(這不是很多),我需要爲cookie定義域,但我們有多個可能的域..我定義了每個cookie Web服務器:粘滯會話負載平衡多個域
RewriteEngine On
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain1.com]
,因爲我們有多個領域,我想我可以添加一個重寫規則爲每個域和Apache會處理的是,這樣的事情:
RewriteEngine On
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain1.com]
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain2.com]
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain3.com]
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain4.com]
但你可能有現在搞清楚了,粘性會話只適用於domain1.com,這是名單上的第一個。
任何想法如何解決這個問題?
編輯:
我現在正在嘗試這種方法:
RewriteEngine On
RewriteCond %{HTTP_X_FORWARDED_HOST} ^(www\.)?domain1\.com/ [NC]
RewriteRule .* - [CO=BALANCEID:balancer.lb2:.domain1.com] [L]
RewriteCond %{HTTP_X_FORWARDED_HOST} ^(www\.)?domain2\.com/ [NC]
RewriteRule .* - [CO=BALANCEID:balancer.lb2:.domain2.com] [L]
RewriteCond %{HTTP_X_FORWARDED_HOST} ^(www\.)?domain3\.com/ [NC]
RewriteRule .* - [CO=BALANCEID:balancer.lb2:.domain3.com] [L]
但它不工作的,是那些規則錯別字或 這種邏輯根本不會工作?
PS:我也嘗試使用HTTP_HOST而不是HTTP_X_FORWARDED_HOST,但它有相同的結果。
你真的需要粘性會話,爲什麼不在服務器端共享會話(數據庫/ NFS等)? – regilero 2011-02-07 12:58:57
以及我試圖設置兩個服務器上的php.ini的session.save_path到NAS上的一些共享位置,但會話不一致,重新加載頁面有時會顯示用戶已登錄,有時沒有登錄..什麼除了php.ini中的設置,還應該完成其他操作嗎? – Julien 2011-02-07 22:14:17