阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

185次阅读
没有评论

共计 1956 个字符,预计需要花费 5 分钟才能阅读完成。

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

,在 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 的支持。具体原理还有待研究,总之得试试吧~~

安装过程可以参考这个:http://www.linuxidc.com/Linux/2015-09/123050.htm。(指出这个文章有问题的地方, 在安装 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 www.linuxidc.com rockcoding.com;
        listen 80;
        index index.html index.htm index.jsp;
        location / {
        proxy_pass http://rock;
        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 包 http://www.linuxidc.com/Linux/2013-12/93786.htm

Tengine 动态开启模块试用 http://www.linuxidc.com/Linux/2012-12/75849.htm

CentOS 6.3 用 ICC 编译 PHP5.4.8+Percona5.5.27+Tengine1.4.1 http://www.linuxidc.com/Linux/2012-12/76636.htm

基于淘宝 Tengine 和 Scribe 的 WEB 日志收集方案 http://www.linuxidc.com/Linux/2012-02/52997.htm

基于 Tengine 部署 LNMP 环境 http://www.linuxidc.com/Linux/2014-01/95148.htm

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

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计1956字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中