10-1、源码安装的nginx平滑升级及重新编译添加模块

查看之前Nginx 编译配置,再次编译的时候带上这些配置

nginx -V

再次编译安装Nginx 编译的同时添加module


1   ./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx/modules/ngx_http_consistent_hash
2   make
3   mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
4   cp objs/nginx /usr/local/nginx/sbin


5、发送USR2信号

向主进程(master)发送USR2信号,Nginx会启动一个新版本的master进程和对应工作进程,和旧版一起处理请求

➜  nginx ps aux | grep nginx
root      24562  0.0  0.0  24848   720 ?        Ss   10:30   0:00 nginx: master process ./sbin/nginx
nobody    24564  0.0  0.1  27384  1508 ?        S    10:30   0:00 nginx: worker process
nobody    24565  0.0  0.1  27384  1748 ?        S    10:30   0:00 nginx: worker process
➜  nginx kill -USR2 24562
➜  nginx ps aux | grep nginx
root      24562  0.0  0.0  24848   880 ?        Ss   10:30   0:00 nginx: master process ./sbin/nginx
nobody    24564  0.0  0.1  27384  1508 ?        S    10:30   0:00 nginx: worker process
nobody    24565  0.0  0.1  27384  1748 ?        S    10:30   0:00 nginx: worker process
root      27309  0.0  0.1  24852  1948 ?        S    10:35   0:00 nginx: master process ./sbin/nginx
nobody    27315  0.0  0.1  27388  1508 ?        S    10:35   0:00 nginx: worker process
nobody    27316  0.0  0.1  27388  1508 ?        S    10:35   0:00 nginx: worker process


6、发送WINCH信号
向旧的Nginx主进程(master)发送WINCH信号,它会逐步关闭自己的工作进程(主进程不退出),这时所有请求都会由新版Nginx处理
➜  nginx kill -WINCH 24562
➜  nginx ps aux | grep nginx
root      24562  0.0  0.0  24848   880 ?        Ss   10:30   0:00 nginx: master process ./sbin/nginx
root      27309  0.0  0.1  24852  1948 ?        S    10:35   0:00 nginx: master process ./sbin/nginx
nobody    27315  0.0  0.1  27388  1508 ?        S    10:35   0:00 nginx: worker process
nobody    27316  0.0  0.1  27388  1508 ?        S    10:35   0:00 nginx: worker process


注意:回滚步骤,发送HUP信号

如果这时需要回退继续使用旧版本,可向旧的Nginx主进程发送HUP信号,它会重新启动工作进程, 仍使用旧版配置文件。然后可以将新版Nginx进程杀死(使用QUIT、TERM、或者KILL)
kill -HUP 24562


7、发送QUIT信号
升级完毕,可向旧的Nginx主进程(master)发送(QUIT、TERM、或者KILL)信号,使旧的主进程退出
➜  nginx kill -QUIT 24562 
➜  nginx ps aux | grep nginx
root      27309  0.0  0.1  24852  1948 ?        S    10:35   0:00 nginx: master process ./sbin/nginx
nobody    27315  0.0  0.1  27388  1508 ?        S    10:35   0:00 nginx: worker process
nobody    27316  0.0  0.1  27388  1508 ?        S    10:35   0:00 nginx: worker process



8、验证nginx版本号,并访问测试


--------------------------------------------------------------------------------
安装
下载并上传nginx-1.8.5.tar.gz
解压到root下
tar -xvf nginx-1.8.5.tar.gz -C /root/

切换到nginx目录
cd nginx-1.8.5/

编译nginx
./configure --xxxxxxxxxxx(参数自行添加,此处省略.......)
make
make install

安装完成
-----------------------------------------------------------
升级
注:原nginx安装路径为/usr/local/nginx/,版本为1.8.5
下载新版本安装包并解压:
tar -xvf nginx-1.8.7.tar.gz -C /root/

进入nginx目录
cd nginx-1.8.7/

查看nginx编译参数
nginx -V

将configure arguments:后的参数复制后放在./configure 后执行重新编译
./configure --xxxxxxxxxxx

编译完成后make
make

注:不执行make install,否则覆盖原文件数据
备份并替换nginx可执行文件
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp /root/nginx-1.8.7/objs/nginx /usr/local/nginx/sbin

查看是否升级成功
nginx -V

发现本版更换为1.8.7,升级成功
---------------------------------------------------------------------------------
添加模块
进入nginx目录
cd nginx-1.8.7/

查看nginx编译参数
nginx -V

将configure arguments:后的参数复制后放在./configure 后,加入要添加的模块--with-http_ssl_module,执行重新编译
./configure --xxxxxxxxxxx --with-http_ssl_module

编译完成后make
make

注:不执行make install,否则覆盖原文件数据
备份并替换nginx可执行文件
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak_v2
cp /root/nginx-1.8.7/objs/nginx /usr/local/nginx/sbin

查看是否添加模块成功
nginx -V

发现编译参数添加进来了,添加模块成功
使用此方法,亲测无坑!

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值