负载均衡的Web服务器上的PHP cookie

时间:2013-06-17 11:07:19

标签: php session cookies cluster-computing load-balancing

我已经在我的网络应用程序页面中设置了一个简单的用户登录会话:

if (!isset($_SESSION['username'])){
            if (isset($_COOKIE['username'])){   
                $_SESSION['username'] = $_COOKIE['username'];
            }

我开始注意到在某些情况下我会松开登录会话。我检查了cookie的到期时间,这肯定是为了将来的日期。这种行为是随机的,有时复制动作不会导致问题。

今天我发现网络服务器(x2)是负载平衡的(我很笨拙,没有拿起来)现在我怀疑当用户向第二个Web服务器发送请求时,问题会出现问题不存在。

我会想到当你点击一个Web服务器时,它会与它保持一个会话。然而,这种行为表明不然。

我还没有和网络管理员说过话。有没有一个神奇的解决方案,网络管理员可以解决我?或者这是一个实施问题?如果是这样,关于如何解决这个问题的任何想法?

建议非常感谢。

1 个答案:

答案 0 :(得分:0)

除非网址发生变化,否则cookie无关心后端服务器处理请求的情况。如果网址从www1.xxx.xx更改为www2.xxx.xx,那么您可以使用包含的路径(xxx.xx)保存Cookie,并且两个子域都可以看到Cookie。

另一个更可能出错的事情是两个服务器之间没有共享会话。您可以使用memcached