根据之前做好的配置,接下来考虑遇到的数据共享问题。  因为niginx将原本请求的一台机器分为了2台机器,那么如果当用户信息或者一些临时数据存储在  session中的话会数据时有时无,因为session存在服务端的,比如第一次在192.168.0.123存了  session,第二次在192.168.0.321登录的时候发现数据没得了。  那么我这里总结了几个解决方案,不足的地方希望大神指点下小弟。

第一:将session数据存在cookie中

因为cookie是存在请求用户客户端的。所以数据不会出现时有时无的症状,如果你session存的只是用户名,
登录状态这些小数据,那基本上肯定是够用。存的时候用户信息要加密,验证的时候解密对比啊。缺点就是
浏览器清理会被清理掉,而且存储重要数据安全性有问题。

第二:将session数据存在数据库中

可以在数据库里创建一个session表用来存储session数据。
我这里cookie只保存登录信息,数据库用来存储当前登录用户的一些其他信息。
其实已经有点像某些公司的中间件了,如果用户量巨大也可以单独一个服务器存储这些数据。
下面是我的数据表结构:

UserName就是属于哪个登录用户名的记录。

第三:nginx的ip_hash

ip_hash负载均衡根据个人理解:例如多个用户通过nginx访问到了后端的服务器集群,这个时候
因为有不同用户,所以ip也不同,ip+hash算法计算的hash值都传到了服务器,nginx就记录了这
个ip和hash值,那么下次同一个ip过来还是会分配到这个服务器,那么如果当前ip的服务器挂了,
这个时候用户请求过来,session没有过期。那么是不是也会出现丢失的情况。
配置比较简单:

个人感觉第二种方案比较稳当。如果有更多方法,希望大神能指点一下。

©著作权归作者所有:来自51CTO博客作者陆小鹿的原创作品,如需转载,请注明出处,否则将追究法律责任

好知识,才能预见未来

赞赏

0人进行了赞赏支持

更多相关文章

  1. postgresql copy使用
  2. HMS Core . Sparkle金融创新沙龙,邀您参加
  3. 大数据啊大数据!
  4. 什么是分布式文件系统?为什么要学习分布式文件系统?数据存储的重要
  5. 数据管理服务的本质是什么?
  6. 介绍一款免费好用的可视化数据库管理工具
  7. “小而美”的数据治理实践
  8. Python爬虫如何去抓取qq音乐的歌手数据?
  9. 网易数据库运维自动化演进与 AIOps 探索

随机推荐

  1. 用Java解析XML文件的代码示例
  2. 分享一个jscript与vbscript操作XML元素属
  3. dom4j解析xml文件代码示例
  4. 分享一个利用Ajax传递Xml文档的方法
  5. java通过XPath解析xml节点的代码详解
  6. 带你深入了解XML
  7. Android 淡入淡出动画xml配置代码展示
  8. XSL将XML中的CDATA注释输出为HTML文本的
  9. RSS全站静态输出和RSS订阅的步骤(dedecms)
  10. ASP.NET读取RSS的实例解析