刚搬到AWS并启动了2个RHEL服务器,负载均衡。并安装了Apache和PHP。就这样。第二个甚至是第一台服务器的图像。
但突然我才注意到PHP $_SESSION
变量不是同步的。各有所不同。
我跑完之后:
<?php
session_start();
if ( $_GET["setvalue"] ) {
$_SESSION["sess_test"] = $_GET["setvalue"];
}
echo "session value: ".$_SESSION["sess_test"];
?>
然后我分配如下:
在我分配会话值后,一次又一次地刷新(当然通过删除“?setvalue=hello
”部分),每当我刷新时,同一页面显示2x个不同的值(因为我有两个负载平衡的服务器)
一个显示:
下一次显示:
在我再次给出不同的值之后,只有一个点击服务器显示最后一个值,而其他服务器仍未使用最后一个值进行更新。
任何想法请? :(
答案 0 :(得分:2)
如果您使用默认的基于文件的会话存储引擎,那么自然而言,您无法对它们进行负载平衡(至少,不能使用某种stickiness)。