[nginx]-nginx热升级

热升级流程

1将旧nginx文件换成新nginx文件(注意备份)

2向master进程发送USR2信号

3master进程修改pid文件名,加后缀.oldbin

4master进程用新nginx文件启动新master进程

5向老master进程发送WINCH信号,关闭老worker

6回滚:向老master发送HUP,向新master发送QUIT

 

 

 

 

备份二级制文件  因为升级只是升级2进制文件 并不会更换其他文件。

解压nginx-1.14.2.tar.gz

tar zxf nginx-1.14.2.tar.gz

cd nginx-1.14.2

vim auto/cc/gcc

#CFLAGS="$CFLAGS -g"      ##注释掉(关闭debug日志)

./configure --prefix=/usr/local/nginx/

make

 

 注意:不要make install,会导致原先的主程失控

 

 

cp -f nginx /usr/local/nginx/sbin/nginx  

添加-f否则会提示cp: cannot create regular file ‘/usr/local/nginx/sbin/nginx’: Text file busy

给正在运行的nginx的master进程发送信号 需要进行热升级

新起的worker正在逐步取代旧的worker

给正在运行的nginx的老master进程发送信号需要优雅的退出

老的master进程还在但是没有worker进程了,用于出现问题时回滚老版本,并不会自动退出。

如果需要测试此时nginx的版本号  最好还是访问一个404不存在的文件 查看nginx返回的版本号。要开启server_tokens on 这个参数,默认是关闭的。生产建议关闭。

 

回滚老版本

先将旧的二进制文件替换回去  下面测试是将1.14替换成1.8,然后回滚到1.14的例子

 

如图已经从1.14”升级”为1.8

下面进行回滚 

正确示范

kill –HUP $odlpid

旧的版本的nginx 已经拉起了worker进程。

关闭不需要的nginx的worker进程

直接在HUP完成之后kill -QUIT 20724也可以。master和worker进程一同杀掉。

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爷来辣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值