0

当负载均衡器与后端的不同 Web 服务器一起使用时,如何维护同一用户的会话。换句话说,假设有一个负载平衡器在不同的服务器之间分配负载,并且用户被定向到存储其会话的一个服务器,然后下次同一用户被定向到第二个服务器。服务器如何知道它是否是同一个用户?如何保持它在两台服务器上都是同一个用户

4

3 回答 3

0

我通过将会话存储表单文件更改为另一个可以处理 tcp 连接的系统(在我的情况下为 memcache,但您甚至可以使用 mysql)

memcache 解决方案:用于 memcache 扩展

session.save_handler = memcache 
session.save_path = "tcp://localhost:11211" 

对于内存缓存D

session.save_handler = memcached 
session.save_path = "localhost:11211" 

,但是当然,您应该将 localhost 更改为您的 dns/ip

在手动会话支持中检查它

于 2012-07-03T15:27:42.873 回答
0

您的负载均衡器可以配置为将同一用户/客户端定向到同一服务器。这变得“棘手”的唯一一次是在 SSL 和不安全流量之间跳转时,但这仍然可以在您的负载均衡器上进行配置。

如果由于某种原因您无法执行此操作,您可以在 SQL 服务器中存储/检索会话状态。请参阅这篇文章以获取指导。

于 2012-07-03T15:28:26.787 回答
0

使用数据库进行会话存储。(注意 SQL 注入,因为保存 PHPSESSID 的 cookie 来自客户端。)

从这里开始:http: //php.net/manual/en/function.session-set-save-handler.php

于 2012-07-03T15:30:13.447 回答