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

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不能完全利用内存。会产生内存碎片。如果存储块不足。还会产生内存溢出。

四。总结

上面三种方法都是可行的

第一种方法。最影响系统速度的那种。不推荐使用;

第二种方法。效果不错。不过安全隐患一样的存在;

第三种方法。个人觉得第三种方法是最好的。推荐大家使用

分享到 :
相关推荐

Z-Blog安装教程:详细的在线安装流程

本文将为大家带来Z-Blog安装教程。为大家分享详细的Z-Blog在线安装图文教程步...

nginx配置访问静态资源(nginx 拦截)

大家好,今天来介绍nginx配置访问静态资源的问题,以下是渲大师小编对此问题的归纳和...

怎么保护日本服务器(怎么保护日本服务器安全)

保护日本服务器的方法有:1。用强密码。防火墙或防火墙服务保护日本服务器。且可以使用软...

租用香港服务器做BT下载站的有哪些硬件要求

具体内容如下:一。采用raid配置所谓的BT服务器本质上也是一种文件服务器所以别[&...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注