在web中,session经常用来存储当前用户信息,或者通过session进行登录权限的验证。如果是一台服务器,session的使用没问题,如果使用nginx等实现反向代理,将站点部署在多台服务器的情况下,有可能出现这样的现象:你登录的时候是在服务器A登录,并且采用的session存储是进程内存储的方式,你在访问其他页面的情况下,nginx有可能将你的请求转发到服务器B,但服务器B进程内并没有保存你的用户信息,在校验权限的时候,会将你重定向到登录页面。、
所以在分布式体统中使用redis存储用户的登录状态,将客户的手机号作为cookie发送给客户端,当用户再次访问其他页面的时候,都会携带者cookie,而在redis中已经使用用户的手机号做为标识用户身份的信息,则可以认证用户的身份,直接访问其他页面

本文探讨了在单一服务器和分布式环境中session的使用差异,特别是在使用nginx反向代理时,如何避免因session存储方式不当导致的用户登录状态丢失问题。提出了利用redis存储用户登录状态的解决方案,确保用户在多服务器间漫游时,能够保持登录状态。
843

被折叠的 条评论
为什么被折叠?



