共计 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,依然那么简约。– –!)
那么我们就来试试那个神奇的模块吧,配置如下:
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 来判断的~
嗯,比 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 的下载地址 :请点这里