nginx添加sticky模块-cookie保持会话

发布时间 2023-10-20 18:10:46作者: guoqian205

环境nginx 1.8.0 

centos6.X 

sticky:1.2.5   wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz

cookie负载均衡相比iphash来比其中一个特点比较明显:内网nat用户的均衡。而iphash无法做到。

yum install openssl openssl-devel

先停止nginx服务。在给nginx添加模块。

将同版本的nginx包从新解压一份出来。当然同事也讲下载的sticky模块也解压并从命名成nginx-sticky-module

tar -zxf master.tar.gz

mv nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d nginx-sticky-module

killall nginx

(如果想查看sticky的版本,可以在changelog.txt里查看和改动)

添加模块:

我原来nginx的安装路径是:/usr/local/nginx  (添加模块时,之前的配置和模块也需要加上)因为这些都需要写到nginx这个二进制文件中。

查看之前安装了什么模块使用 /usr/local/nginx/sbin/nginx -V 

将之前的带上一起进行编译

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_sub_module --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_spdy_module --with-http_gzip_static_module  --add-module=/root/nginx-sticky-module

然后我们make就好。   make install就不需要了,那是重新安装。

我们编译完成之后,在当前目录下会有一个objs,里面有nginx文件,就是我们make生成的二进制文件,然后将这个文件拷贝到/usr/local/nginx/sbin  (之前的nginx最好备份一下,以免发生错误好恢复)

至此 nginx 添加模块成功。 我们直接在nginx配置文件中引用就好。如下图

 

当然你也可以设置sticky的一些参数,比如sticky的缓存时间,作用于之类的

sticky expires=1h;   缓存一个小时

sticky expires=1d;   缓存一天