当前位置:  操作系统/服务器>linux

web服务器集群(多台web服务器)session同步、共享的3种解决方法

    来源: 互联网  发布时间:2014-08-25

    本文导语:  在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根...

在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根据这种情况给出三种不同的方法来解决这个问题:
一、利用数据库同步session
在做多服务器session同步时我没有用这种方法,如果非要用这种方法的话,我想过二种方法:
1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上,用户访问web服务器时,会去这个专门的数据库check一下session的情况,以达到session同步的目的。
2,这种方法是把存放session的表和其他数据库表放在一起,如果mysql也做了集群了话,每个mysql节点都要有这张表,并且这张session表的数据表要实时同步。
说明:用数据库来同步session,会加大数据库的负担,数据库本来就是容易产生瓶颈的地方,如果把session还放到数据库里面,无疑是雪上加霜。上面的二种方法,第一点方法较好,把放session的表独立开来,减轻了真正数据库的负担
二、利用cookie同步session
session是文件的形势存放在服务器端的,cookie是文件的形势存在客户端的,怎么实现同步呢?方法很简单,就是把用户访问页面产生的session放到cookie里面,就是以cookie为中转站。你访问web服务器A,产生了session把它放到cookie里面了,你访问被分配到web服务器B,这个时候,web服务器B先判断服务器有没有这个session,如果没有,在去看看客户端的cookie里面有没有这个session,如果也没有,说明session真的不存,如果cookie里面有,就把cookie里面的sessoin同步到web服务器B,这样就可以实现session的同步了。
说明:这种方法实现起来简单,方便,也不会加大数据库的负担,但是如果客户端把cookie禁掉了的话,那么session就无从同步了,这样会给网站带来损失;cookie的安全性不高,虽然它已经加了密,但是还是可以伪造的。
三、利用memcache同步session
memcache可以做分布式,如果没有这功能,他也不能用来做session同步。他可以把web服务器中的内存组合起来,成为一个"内存池",不管是哪个服务器产生的sessoin都可以放到这个"内存池"中,其他的都可以使用。
优点:以这种方式来同步session,不会加大数据库的负担,并且安全性比用cookie大大的提高,把session放到内存里面,比从文件中读取要快很多。
缺点:memcache把内存分成很多种规格的存储块,有块就有大小,这种方式也就决定了,memcache不能完全利用内存,会产生内存碎片,如果存储块不足,还会产生内存溢出。
四、总结
上面三种方法都是可行的
第一种方法,最影响系统速度的那种,不推荐使用;
第二种方法,效果不错,不过安全隐患一样的存在;
第三种方法,个人觉得第三种方法是最好的,推荐大家使用

    
 
 

您可能感兴趣的文章:

  • 有没有什么方法或思路把web服务器上的文件上传到另外一个web服务器?
  • 嵌入式的Scala Web服务器 SOCKO WEB
  • 小型Web服务器 nweb Web Server
  • Web服务器 Gatling Web Server
  • 用Java开发web程序,用什么做web服务器最好?
  • 在单网卡的linux web服务器上虚拟Windows系统搭建多个.net web网站,有谁做过?
  • 100分求《嵌入式系统Web服务器—TCP/IP Lean》或《TCP/IP Lean Web Servers for Embedded Systems 》
  • WSGI Web服务器 UV-Web
  • web服务器和应用服务器的区别?
  • 如何去理解web服务器与应用服务器
  • 请问Web服务器与HTTP服务器有什么区别?
  • 我在linux里面配置好了web服务器,可以在本机用自己的IP访问,但是在局域网里面的win却不能访问我这台linux的web页面
  • 一个最简单的问题:www服务器与web服务器是否一个概念?
  • 请问JDBC服务器与WEB服务器是否一个概念?
  • 应用服务器和Web服务器有哪些区别和联系,说明有道理就给分啊!!!!!!
  • Web服务器文件安全监控平台 Falcon
  • 应用服务器和Web服务器的区别?
  • linux服务器做WEB服务器,页面一片空白是什么原因?
  • linux下web服务器与数据库服务器的分离问题(在线等!非常急!)
  • 有关web服务器和数据库服务器分离的问题!
  • 使用JAVA开发WEB,软件,建设WEB服务器用哪个版本的REDHAT?在哪里下载?
  • linux下web服务器与数据库服务器的分离问题。
  • 请问Linux在服务器市场上取的的胜利是指什么,是指用JSP和PHP的WEB服务器吗?
  • 在工作站上装服务器版的操作系统有什么优缺点,以及把一个web服务放在工作站上有什么限制
  • Resin的二进制Web服务 Hessian iis7站长之家
  • Web服务框架 Metro
  • 语义Web服务 WSMO Studio
  • Resin的二进制Web服务 Hessian
  • web服务器与数据库服务器的分离问题。
  • Web服务引擎 axis2c
  • Web服务发布管理 Duda Client Manager
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • web网页自动跳转方法:Html body onload自动跳转举例
  • aria2的Web接口 a2web
  • Python3通过request.urlopen实现Web网页图片下载
  • SVN的Web管理界面 svn-web-admin
  • Web前端设计:Html强制不换行<nobr>标签用法代码示例
  • Web相册 Dumi Web Gallery
  • Web前端开发如何利用css样式来控制Html中的h1/h2/h3标签不换行
  • 请问:authorization of web services和authenication of web services什么区别?
  • Web前端设计:html上标<sup>标签与下标<sub>标签详解
  • C#取得Web程序和非Web程序的根目录的N种取法总结
  • Java Web应用框架 WEB4J
  • LINUX下面的WEB Service如果编写?是用.NET写吗?WINDOW下面的web service能在LINUX下面用吗?
  • Web爬虫框架 Smart and Simple Web Crawler
  • 问tomcat中在tomcat启动时,哪个包加载了/WEB-INF下的web.xml文件?要多少给多少分
  • 我是刚开始学web service ,我想请教哪里有构件web Service的具体操作。
  • 怎么在web上运行applet?我已经把class和web文件放到同一目录下了,总体是我no found class
  • 请问如何取得SERVLET环境下WEB-INFweb.xml中所设置的INIT参数?
  • 用jsp编写web程序到底和java serverlet编写web程序有和区别
  • (奉上所有分数)请教web server架设及实现web server后台程序交互。
  • 用UltraEdit打开tomcat的server.xml或web.xml或自己程序的web.xml,修改保存完毕后,总是弹出错误提示:"0x70c70c99"指令引用的"0x00000008"
  • 为什么要建立web标准与web标准的好处


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3