nginx负载分发,cookie滞粘策略配置,sticky第三方模块追加

来源:互联网 发布:决战武林进阶数据地煞 编辑:程序博客网 时间:2024/04/29 11:41

此文档基于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做负载均衡

expirescookie过期时间,默认浏览器关闭就过期,也就是会话方式。

no_fallbackup:如果设置了这个,cookie对应的服务器宕机了,那么将会返回502bad gateway 或者 proxy error),建议不启用。

0 0