大兵是
一个想全能的运维

web集群会话保持问题

会话保持是负载均衡的一个基本功能,也是我们在很多负载均衡项目实施中经常遇到的一个功能。为了确保与某个客户相关的所有应用请求能够由同一台服务器进行处理,本例中使用的是nginx负载均衡。

一、ip_hash。

upstream server_pools {
      ip_hash;
      server 172.16.1.7 weight=1 fail_timeout=30;#地址池中有两台web服务器
      server 172.16.1.8 weight=1 fail_timeout=30;
}
#ip_hash使用源地址哈希算法,将同一客户端的请求总是发往同一个后端服务器,除非该服务器不可用。是基于IP地址的。

但是ip_hash分配是不均衡,这里只介绍,不推荐使用。

二、使用nginx模块,nginx-sticky-module,也是本文推荐的方法,基于cookie。

1、使用的是nginx-1.8.1版本,升级添加此模块。

#软件存放目录tools
#nginx安装目录/application/
#模块下载地址,https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
#nginx的下载地址就不提供了,此次使用Nginx版本是1.8.1
cd /tools/
tar xf master.tar.gz
mv nginx-goodies-nginx-sticky-module-ng-1e96371de59f nginx-sticky #解压出来的名字太长了,重命名以便使用。
tar zxf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=/application/nginx-1.8.1/ --with-http_gzip_static_module --with-http_flv_module --with-http_dav_module --with-http_stub_status_module --with-http_realip_module --add-module=/tools/nginx-sticky
make
cd /application/nginx-1.8.1/sbin/
mv nginx nginx.bak
cp /tools/nginx-1.8.1/objs/nginx ./
cd -
make install

2、修改nginx负载均衡的配置文件为:

upstream server_pools {
      sticky;
      server 172.16.1.7;
      server 172.16.1.8;
}  

3、重启nginx服务,不要reload

pkill nginx
/application/nginx/sbin/nginx

4、同一台电脑,使用不同的浏览器访问地址池中的服务器时候,会分配不同的服务器,同一浏览器实现会话保持。

三、memcache,基于session的。

后续更新。

打赏

未经允许不得转载: » web集群会话保持问题

分享到:更多 ()

评论 1

  • 昵称 (必填)
  1. #1

    6666

    大神2年前 (2017-02-12)回复