系统环境centos7
nginx不支持动态的添加模块,之前是采用yum -y install nginx的方式安装的,查看了一些资料好像要编译安装,于是将之前的卸载掉,重新进行编译安装;
卸载
yum remove nginx
rm -rf /etc/nginx
nginx编译安装需要openssl-devel的支持
yum -y install openssl-devel
解压安装包
tar zxf nginx-1.7.4.tar.gz
tar zxf nginx-sticky-module-1.1.tar.gz
mv nginx-sticky-module-1.1 nginx-sticky
nginx-1.5.x及以上和nginx-sticky-module-1.1编译会有点问题,应该是nginx新版本没有相应的nginx-sticky-module,解决办法是把nginx-sticky/ngx_http_sticky_misc.c的281行修改为
digest->len = ngx_sock_ntop(in, sizeof(struct sockaddr_in), digest->data, len, 1);
在nginx-1.7.4的目录下执行配置安装
cd nginx-1.7.4
./configure --prefix=/usr/local/nginx-1.7.4 --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=../nginx-sticky
make
make install
配置环境变量
添加如下
vi /etc/profile
export NGINX_HOME=/usr/local/nginx-1.7.4
export PATH=$PATH:$NGINX_HOME/sbin
source /etc/profile
其他相关代码
make clean #编译出错清除重新编译
nginx -s reload #修改配置后重启nginx
tar zxf #解压
netstat -ntlp #查看端口占用
参考文章
使用nginx sticky模块实现基于cookie的负载均衡
nginx sticky 281行错误
nginx组件编译安装常见问题