此文档基于nginx1.7.8,使用linux操作系统.
1.如果服务器能够连接外网下载,可以直接使用wget命令下载,地址如下:
https://code.google.com/p/nginx-sticky-module/downloads/detail?name=nginx-sticky-module-1.1.tar.gz
如果不能连接外网,也可手动在外下载该安装包后,使用ftp工具传送至服务器上.
2.在服务器上找到nginx-sticky-module-1.1.tar.gz压缩包,解压到指定目录,我这里是讲其放入到系统目录/usr/src下,命令如下:
tar -zxvf nginx-sticky-module-1.1.tar.gz -C /usr/src/
3.解压完成之后,cd进入到/usr/src/nginx-sticky-module-1.1目录下方,需要修改ngx_http_sticky_misc.c文件的281行,
原digest->len = ngx_sock_ntop(in,digest
->data, len, 1);
改后digest->len = ngx_sock_ntop(in,sizeof(struct sockaddr_in),digest
->data, len, 1);
4.进入到nginx目录下方,sbin\nginx -s stop 关闭nginx服务器,编辑conf下的nginx.conf文件.
在nginx负载分发设备的upstream模块中,添加一个sticky;字段
/configure --prefix=/home/nginx --with-http_stub_status_module--with-http_ssl_module --with-openssl=../openssl-1.0.1c--with-http_realip_module --add-module=../nginx-sticky-module-1.1--add-module=../nginx_upstream_check_module-master
make
再次编译后,可以使用命令检查objs下的nginx是否已经成功添加sticky模块.
./objs/nginx -V
成功验证后,将该nginx拷贝到sbin目录下方.
cp objs/nginx sbin/
5.sticky[name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1][no_fallback];
name: 可以为任何的string字符,默认是route
domain:哪些域名下可以使用这个cookie
path:哪些路径对启用sticky,例如path/test,那么只有test这个目录才会使用sticky做负载均衡
expires:cookie过期时间,默认浏览器关闭就过期,也就是会话方式。
no_fallbackup:如果设置了这个,cookie对应的服务器宕机了,那么将会返回502(bad gateway 或者 proxy error),建议不启用。