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

 更新时间:2014年04月05日 20:03:20   作者:  
这篇文章主要介绍了web服务器集群(多台web服务器)session同步、共享的3种解决方法,需要的朋友可以参考下
在做了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不能完全利用内存,会产生内存碎片,如果存储块不足,还会产生内存溢出。
四、总结
上面三种方法都是可行的
第一种方法,最影响系统速度的那种,不推荐使用;
第二种方法,效果不错,不过安全隐患一样的存在;
第三种方法,个人觉得第三种方法是最好的,推荐大家使用

相关文章

  • Linux内核宏container_of的深度剖析

    Linux内核宏container_of的深度剖析

    今天小编就为大家分享一篇关于Linux内核宏container_of的深度剖析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 一条命令让你明白shell中read命令的常用参数

    一条命令让你明白shell中read命令的常用参数

    今天小编就为大家分享一篇关于一条命令让你明白shell中read命令的常用参数,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境

    linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境

    这篇文章主要介绍了linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目环境,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Linux7.7设置交换分区SWAP的方法

    Linux7.7设置交换分区SWAP的方法

    这篇文章主要介绍了Linux7.7设置交换分区SWAP的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • YUM软件包管理工具与yum命令的详细介绍

    YUM软件包管理工具与yum命令的详细介绍

    yum是基于RPM包管理器、为了提高RPM软件包安装性而开发的一种软件包管理器。它能够从指定的服务器自动下载.rpm包并自动安装,可以自动处理依赖性关系,并一次性安装所有依赖的软体包。本文就详细介绍了YUM软件包管理工具与yum命令。有需要的朋友们下面来一起看看吧。
    2017-01-01
  • PHP程序员玩转Linux系列 Nginx中的HTTPS详解

    PHP程序员玩转Linux系列 Nginx中的HTTPS详解

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,MySQL备份还原教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • vsftpd用户禁止ssh登陆的实现方法

    vsftpd用户禁止ssh登陆的实现方法

    这篇文章主要给大家介绍了关于vsftpd用户禁止ssh登陆的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • Mac中文件权限查看和设置详解

    Mac中文件权限查看和设置详解

    这篇文章主要给大家介绍了关于Mac系统下文件权限查看和设置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Mac具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • ubuntu18.04 安装qt5.12.8及环境配置的详细教程

    ubuntu18.04 安装qt5.12.8及环境配置的详细教程

    这篇文章主要介绍了ubuntu18.04 安装qt5.12.8及环境配置的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • 阿里云Centos6.X发邮件遇到的各种问题

    阿里云Centos6.X发邮件遇到的各种问题

    这两天用PHPMailer写了个发送邮件功能,在本地测试可以发送邮件,但是放到阿里云服务器缺发送不了,经过查询,最终解决了,把方法分享给大家
    2018-09-09

最新评论