nginx入门学习—— 在已安装好的nginx上添加sticky模块(二)

经过 《nginx入门学习—— nginx添加未编译安装模块(一)》之后,访问nginx,http://192.168.12.70:80地址,登录,发现没法登录。但是,访问http://192.168.12.70:8080却能登录。出现这个问题,主要是因为session丢失问题,需要加一个模块nginx-sticky-module,可以防止session丢失(使用Nginx sticky模块实现基于cookie的负载均衡)。

1.下载nginx-sticky-module包(nginx-sticky-module-1.1不支持nginx1.6以上版本,如果nginx用的是1.6以上版本,可以在nginx的第三方网站ttp://wiki.nginx.org/3rdPartyModules上下载相应的module(最好不要用于生产环境,自己研究一下可以))

wget https://code.google.com/p/nginx-sticky-module/downloads/detail?name=nginx-sticky-module-1.1.tar.gz

2.安装ssl(如果已经安装了,就不需要安装了,sticky模块依赖这个包)

yum install openssl
yum install openssl-devel

3.重新添加模块,编译
./configure --prefix=/opt/icloudq/nginx --add-module=/opt/icloudq/nginx_tar/nginx-sticky-module-1.1

make
(不要make install,要不然就相当于重新安装了。)

4.关闭原来的nginx
kill -QUIT `cat /opt/icloudq/nginx/logs/nginx.pid`

5.复制编译后的二进制文件到目录
cp /opt/icloudq/nginx/sbin/nginx /opt/icloudq/nginx/sbin/nginx.bak
cp /opt/icloudq/nginx_tar/nginx-1.4.7/objs/nginx /opt/icloudq/nginx/sbin/nginx

6.修改配置nginx文件,使插件sticky生效
vim /opt/icloudq/nginx/conf/nginx.conf

在upstream中添加sticky;

http {
    upstream uec_portal{
        #添加sticky模块后加入此配置
        sticky;


        #被代理的服务
        server 192.168.12.56:80;
        server 192.168.12.70:8080;
    }


    server {
        #nginx监听的端口
        listen       80;
        server_name  localhost;


        location / {
            #代理
            proxy_pass http://uec_portal;
        }


   }
}

7.测试配置文件是否OK
/opt/icloudq/nginx/sbin/nginx -t

8.启动nginx
/opt/icloudq/nginx/sbin/nginx


9.测试。

至此session丢失问题就解决了。


你可能感兴趣的:(Java技术,工作笔记,分布式部署,项目部署,nginx)