使用负载均衡器处理会话?
也许这是显而易见的,但如果我有一个负载均衡器或多台正在使用的服务器,用户的会话来自 1 个服务器,因此如果用户被推送到服务器 2 或服务器 3,那么这是否意味着用户的会话将过期或如何使其正常工作?
我有多会话检查,因此如果用户从不同位置登录,它会自动将其注销,就像我们在银行网站上看到的那样。这对服务器有影响吗?我需要在数据库级别做些什么吗?
编辑: 使用 PHP 代码点火器。目前我有 1 台专用服务器,但在添加 2 台服务器的过程中,因此在添加这些服务器之前,我需要知道会话是否可以工作或者是否需要再次重新执行会话代码。
Maybe this is obvious but if i have a load balancer or multiple servers in use, the user's session is coming from 1 server so if the user is pushed to say server 2 or server 3 then does that mean the user's session will expire or how to make it work as normal?
I have multi-session checks, so if a user logs-in from a different location it will auto sig them out like we see on bank websites. Does this effect servers? Is there anything I need to do at the database level?
EDIT:
Using PHP codeignitor. Currently i have 1 dedicated server but in the process of adding 2 more servers hence before I add those I need to know if sessions will work or if it requires re-doing the session code again.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将会话数据存储在所有应用服务器都可以访问的共享存储(例如 memcached 服务器)中。
如果您的应用服务器中有足够的状态,您需要负载均衡器在会话期间将来自同一客户端的所有请求发送到同一服务器 - 嗯,是的,您可以负载均衡器会为你做到这一点,但更大的答案是你做错了。
由于您使用的是 PHP,因此您可能会在 http://kevin.vanzonneveld 中找到该博客条目。 net/techblog/article/enhance_php_session_management/ (描述使用 memcached 进行 PHP 会话存储)很有用。
Store session data in a shared store (such as a memcached server) which all app servers can access.
If you have enough state in your app servers that you need your load balancer to send all requests from the same client to the same server for the duration of their session -- well, yes, you can make your load balancer do that for you, but the larger answer is that You're Doing It Wrong.
Since you're using PHP, you might find the blog entry at http://kevin.vanzonneveld.net/techblog/article/enhance_php_session_management/ (describing using memcached for PHP session storage) useful.