处理与负载均衡器的会话?

时间:2010-12-31 22:58:52

标签: database session session-timeout

也许这是显而易见的但是如果我有一个负载均衡器或正在使用多个服务器,那么用户的会话来自1个服务器,所以如果用户被推到说服务器2或服务器3那么这意味着用户的会话将会过期或者如何让它正常工作?

我有多会话检查,所以如果用户从其他位置登录,它会像我们在银行网站上看到的那样自动签出。这会影响服务器吗?我需要在数据库级别做什么吗?

编辑: 使用PHP codeignitor。目前我有1个专用服务器,但在添加2个服务器的过程中,因此在添加之前我需要知道会话是否有效或是否需要重新执行会话代码。

1 个答案:

答案 0 :(得分:1)

将会话数据存储在所有应用服务器都可以访问的共享存储(例如memcached服务器)中。

如果您的应用服务器中有足够的状态,您需要负载均衡器在会话期间将来自同一客户端的所有请求发送到同一服务器 - 嗯,是的,您可以让你的负载均衡器为你做到这一点,但更大的答案是你做错了。

由于您使用的是PHP,因此您可能会发现http://kevin.vanzonneveld.net/techblog/article/enhance_php_session_management/上的博客条目(描述使用memcached for PHP会话存储)非常有用。