2013-07-26 78 views
1

剛搬到AWS並啓動了2個RHEL服務器,負載均衡。並安裝了Apache和PHP。就這樣。其次是第一臺服務器的形象。負載均衡服務器中的PHP SESSION不同步(未同步)?

但突然我發現PHP $_SESSION變量不同步。每個人有不同的表達。

後我運行此:

<?php 
session_start(); 

if ($_GET["setvalue"]) { 
    $_SESSION["sess_test"] = $_GET["setvalue"]; 
} 

echo "session value: ".$_SESSION["sess_test"]; 
?> 

然後我給你這樣的:

後,我分配會話值,並通過去除ofcourse連連(刷新「?setvalue=hello」部分),相同的頁面顯示2x不同的值(因爲我有兩個負載平衡的服務器),每當我refr ESH。

一是顯示:

  • 會話值:你好

而且在下一次顯示:

  • 會話值:

後我給不同值再次,只有一個命中服務器正在顯示最後一個值和其他服務器仍然沒有更新最後一個值。

任何想法請? :(

+0

什麼問題了嗎?代碼工作爲我好 –

+0

只要啓動2臺服務器,負載平衡,而且安裝Apache和PHP。這就是所有。並測試它是否可用。 –

回答

2

如果您使用的是默認的基於文件的會話存儲引擎,那麼自然,你不能負載平衡他們(至少,如果不使用某種stickiness)。

你需要的是對於會議集中存儲,使用例如databasememcache

參見PHP sessions in a load balancing cluster - how?

+0

嗯:我甚至不知道。我剛搬到AWS並啓動了2個RHEL服務器。並安裝了Apache和PHP。就這樣。其次是甚至第一臺服務器的形象:( –