目的:
在nginx基础功能上添加sticky第三方模块。
1.下载sticky包
cd ~
mkdir tools && cd tools
wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
2.解压
tar -zxvf nginx-goodies-nginx-sticky-module-ng-1e96371de59f.tar.gz
3.重命名目录
mv nginx-goodies-nginx-sticky-module-ng-1e96371de59f nginx-sticky
4.进入nginx目录,编译
./configure --prefix=/home/jack/nginx --add-module=/home/jack/tools/nginx-sticky/
make
问题:
编译时报错如下:
/home/jack/tools/nginx-sticky/ngx_http_sticky_misc.c: 在函数‘ngx_http_sticky_misc_sha1’中:
/home/jack/tools/nginx-sticky/ngx_http_sticky_misc.c:176:15: 错误:‘SHA_DIGEST_LENGTH’未声明(在此函数内第一次使用)
u_char hash[SHA_DIGEST_LENGTH];
^
/home/jack/tools/nginx-sticky/ngx_http_sticky_misc.c:176:15: 附注:每个未声明的标识符在其出现的函数内只报告一次
/home/jack/tools/nginx-sticky/ngx_http_sticky_misc.c:176:10: 错误:未使用的变量‘hash’ [-Werror=unused-variable]
u_char hash[SHA_DIGEST_LENGTH];
^
/home/jack/tools/nginx-sticky/ngx_http_sticky_misc.c: 在函数‘ngx_http_sticky_misc_hmac_sha1’中:
/home/jack/tools/nginx-sticky/ngx_http_sticky_misc.c:242:15: 错误:‘SHA_DIGEST_LENGTH’未声明(在此函数内第一次使用)
u_char hash[SHA_DIGEST_LENGTH];
解决:
安装openssl-devel即可。
5.安装
注意
如果是新安装的nginx则继续执行
make install
如果是已经装过nginx的则只需要将nginx/sbin下的nginx文件替换即可。
mv ~/nginx/sbin/nginx ~/nginx/sbin/nginx.bak #备份
cp objs/nginx ~/nginx/sbin/
6.启动nginx
./nginx/sbin/nginx #启动
./nginx/sbin/nginx -s reload #重启