标签:登录 会话 nginx session cookie 服务器 red 客户端
$\color{red}{前言:}{red}$
在项目实践中,有时我们需要多台服务器进行负载,以扩展服务器的宽带、增加吞吐量和提高网络数据的处理能力,从而提高用户的体验感,保证项目的质量。当一个项目部署在多台服务器上,我们习惯于使用nginx做负载均衡,这样同一个IP访问项目的时候会被自动分配到不同的服务器上;
但是,如果多台服务器的session不同步的话,则会导致很多问题,比如我们的登录状态、用户信息、数字字典等都会归零,都需要重新登录之后才能获取到,这样给用户的体验感就会很差,所以在多台服务器进行负载均衡的时候我们就得要考虑到多台服务器之间的session同步了,下面提供几种解决方案:
$\color{red}{red}$解决方案
$\color{red}{red}$1、使用客户端的cookie作为存放登录信息的媒介
cookie是将用户登录信息存储在用户终端的数据载体,与session的最大区别就是,session是存储在服务器端的;所以这就很容易解决这种session的多台服务器共享问题。当我们客户端进行登录的时候,访问的是服务器a,登录成功之后我们将session抽取出来存放在客户端的cookie里面;然后当我们客户端第二次进行访问的时候,访问的是服务器b,这次我们先在服务器b去查找是否有登录成功的session,如果为空,我们再对客户端的cookie进行查找,如果cookie里面已经存储有session,那么再将cookie里面的session同步到服务器b,那么整个流程就能走通了,用户也不用再次登录;
优点:这种方法实现起来简单,方便,很容易上手操作,不会加大数据库的负担;
缺点:如果客户端把cookie禁掉了的话,那么session就无法同步了,而且cookie的安全性不高,很容易外部被伪造使用;
标签:登录,会话,nginx,session,cookie,服务器,red,客户端 来源: https://www.cnblogs.com/stronger-xsw/p/12737736.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。