使用Tengine解决负载均衡的Session问题

  事情的经过时这样的~~,我看了好多好多百度中nginx负载均衡中解决session问题的方式,我选择了研究url_hash的方式。经过一番配置之后,我越发觉得这百度搜出来的帖子也太过久远了吧,去上找了找这个模块

,在github下载的位置上看到了这样一段话:

  NOTE: This module is obsolete as of Nginx 1.7.2, which includes the hashdirective. This repository remains for historical interest only. 我的理解是此版本是绝对的使用nginx1,7,2,此库仅为历史感兴趣的参考,而百度翻译则是此模块为过时的,我就无法理解了。

  正在迷茫之际,我看到了tengine,这是淘宝对nginx的一种扩展的优化吧。然后我就转而研究这个了~~,发现在tengine之中有一个叫做ngx_http_upstream_session_sticky_module的模块,很是贴合我的目的,他是利用用户的cookie来保持对session的支持。具体原理还有待研究,总之得试试吧~~

  安装过程可以参考这个: 。(指出这个文章有问题的地方,在安装nginx的时候使用 ./configure --prefix=/opt/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.1h --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.35 --with-jemalloc=/usr/local/jemalloc-3.6.0这个命令)

  经过各种踩坑之后,整好了:(这个界面也是尊重nginx,依然那么简约 。  - - !)

使用Tengine解决负载均衡的Session问题

那么我们就来试试那个神奇的模块吧,配置如下:

upstream rock{
  server 127.0.0.1:8081;
  server 127.0.0.1:8082;
  session_sticky;
}


server {
        server_name rockcoding.com;
        listen 80;
        index index.html index.htm index.jsp;
        location / {
        proxy_pass ;
        proxy_set_header  Host  $host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        #        access_log  /data/log/rockman/www.linuxidc.com  main; #日志文件
        }
}

公司的同事,对于外网来说ip都一样,只要访问到不同的两台服务器且连续刷新不会改变session不会失效(其实就是不会跳转到另一台服务器),那么就成功了。两台电脑访问,或者不同的浏览器访问都可以,模块式基于cookie来判断的~

使用Tengine解决负载均衡的Session问题

使用Tengine解决负载均衡的Session问题

嗯,比ip_hash强多了,但是要编译那么多东西,总觉得还需要再深入研究一下,才方便使用这个tengine吧~

相关阅读

CentOS 6.4制作Tengine的rpm包

Tengine动态开启模块试用

CentOS 6.3用ICC编译PHP5.4.8+Percona5.5.27+Tengine1.4.1

基于淘宝Tengine和Scribe的WEB日志收集方案

基于Tengine部署LNMP环境

Tengine 的详细介绍请点这里
Tengine 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b00b2d92171a5314bbb9829c87d39211.html