登录状态负载均衡php,对应用服务器做了负载均衡之后如何保持session等记录用户登录状态的会话信息?...

在应用服务器负载均衡后,保持用户登录状态的session管理成为挑战。常见的方法包括IPhash(可能导致负载不均)、数据库存储session(影响性能)、共享NFS存储(风险高)、使用memcache或redis。推荐使用memcache作为session存储,通过cookie存储唯一key,以数据库存储详细信息,确保安全性和性能。此外,nginx等工具提供的会话保持功能也可考虑。
摘要由CSDN通过智能技术生成

对应用服务器做了负载均衡之后如何保持session等记录用户登录状态的会话信息?用cookie?但是这样觉得不太安全。

回复内容:

对应用服务器做了负载均衡之后如何保持session等记录用户登录状态的会话信息?用cookie?但是这样觉得不太安全。

几个思路:

1 、负载算法采用 IP hash ,把每次相同 IP 的请求转发到同一台 Web 服务器上。

缺点是不能有效利用到所有的 Web 服务器来做均衡负载,一般负载算法都是 Round Robin 。

2 、重写 session handler , 把 session 用数据库来存储。

缺点是访问量高的情况下,IO 吞吐太高的话会影响网站性能。

3 、把 session 的默认存储路径设置为 NFS 上的一块存储区域,这样所有的 Web 服务器就可以共享了。

缺点是一旦 NFS 挂了,session 就再也没有办法使用了。

4 、最简单的,把 php.ini 里的 session save handler 设置为 memcache 或者 redis。

推荐用 memcache 。如果用 redis 的话,目前没有好用的 cluster 解决方案,而来 redis 还会把数据回写到硬盘上,完全没必要。而 memcache 只需要很少的配置就能做 cluster ,数据操作完全在内存里,速度杠杠滴。

cookie存一个key,具体信息存在数据库里,可以用memcache/redis这些基于内存的key-value存储来加速

@socrates 提供了一个方法,另外也可以通过对IP做hash把相同用户的请求发送到同一后端,nginx就有这种简单的会话保持功能。

负载均衡会话保持,同一用户请求发送到一台服务器。这个比较靠谱。

很关键工号

负载均衡的会话黏滞,会增加负载均衡的负担,因为需要记录IP和上游服务器的对应关系

session存在key-value数据库中。将key存cookie,value存数据库。key一般是很复杂的,很难猜到,所以就算用cookie存也不会有什么严重的问题。推荐这种做法,实现起来也不难,key-value数据库也可以避免单点故障的

使用统一的 session服务 可以存储到 mc 或者 redis

可以把它存入结构性存储(memcached之类的)

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值