共享session的几种方式

1、为什么需要共享session

假设某个网站是由多台服务器提供服务,nginx采用轮询机制做负载均衡,那么同一个IP访问该网站时,请求就可能会被分配到不同的服务器上,如果session没有实现共享,就会出现重复登陆授权的情况。

2、共享session的几种方式

1)、基于NFS的session共享

NFS(Net FileSystem),顾名思义,也就是网络文件系统,即将session存储目录挂载到所有的服务器上,实现session的读写。该方案实现简单、快速,无需在应用程序上做太多操作。但是缺点也很明显,一是只适合小规模的网站,二是文件读写速度严重依赖网络速度,几台服务器在同一局域网内还能接受,如果跨机房就很容易受到影响而且安全问题也是需要考虑的,三是需要实时监控每一台服务器目录挂载情况。

2)、基于Cookie的session共享

简单的说就是登陆时,将创建的session信息经过加密处理后一并保存在客户端的Cookie里,其他服务器响应请求时,先判断本地服务器是否有已保存的session,如果没有就再将客户端的Cookie里保存的session信息同步到本地服务器。这种方式的缺点就是受客户端的影响较大,而且安全性无法得到保障。

3)、基于数据库的session共享

该方案就是将session数据直接存储在数据库中。该方案操作性较强、安全性高,缺点就是session的并发读写能力取决于数据库的性能,而且需要应用程序支持或者编写一个额外的维护脚本,实现session的更新和过期删除。

4)、基于Memcache/Redis的session共享

该方案时可以看作时方案三的升级版,该方案不仅性能好而且安全性也得到了保障,更重要的时Memcache/Redis原生支持数据的expire过期淘汰。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值