我已经在我的网络应用程序页面中设置了一个简单的用户登录会话:
if (!isset($_SESSION['username'])){
if (isset($_COOKIE['username'])){
$_SESSION['username'] = $_COOKIE['username'];
}
我开始注意到在某些情况下我会松开登录会话。我检查了cookie的到期时间,这肯定是为了将来的日期。这种行为是随机的,有时复制动作不会导致问题。
今天我发现网络服务器(x2)是负载平衡的(我很笨拙,没有拿起来)现在我怀疑当用户向第二个Web服务器发送请求时,问题会出现问题不存在。
我会想到当你点击一个Web服务器时,它会与它保持一个会话。然而,这种行为表明不然。
我还没有和网络管理员说过话。有没有一个神奇的解决方案,网络管理员可以解决我?或者这是一个实施问题?如果是这样,关于如何解决这个问题的任何想法?
建议非常感谢。
答案 0 :(得分:0)
除非网址发生变化,否则cookie无关心后端服务器处理请求的情况。如果网址从www1.xxx.xx
更改为www2.xxx.xx
,那么您可以使用包含的路径(xxx.xx)保存Cookie,并且两个子域都可以看到Cookie。
另一个更可能出错的事情是两个服务器之间没有共享会话。您可以使用memcached。