nginx平滑升级
AI 总结
本文介绍了nginx平滑升级的完整流程:先查看现有编译参数,安装新版本仅编译不安装;备份旧二进制文件并替换为新版;测试配置后向旧进程发送USR2信号启动新进程,此时新旧进程共存;再发送WINCH信号从容关闭旧工作进程,发送HUP信号让旧主进程处理遗留请求,最后发送QUIT信号结束旧进程,完成升级并验证版本。全程服务不中断。
nginx升级步骤
1.先查看现有nginx编译安装的参数
/usr/local/nginx/sbin/nginx -V
2.先安装新版本的nginx,只做到make即可 不要做make install
3.备份旧版本的nginx执行文件,期间nginx服务是不停的
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
4.将新版本的nginx二进制文件到nginx安装目录
cp ./objs/nginx /usr/local/nginx/sbin/
5.测试新版本的nginx是否正常
/usr/local/nginx/sbin/nginx -t
6.向nginx发送平滑升级信号
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
7. 看一下nginx进程,这个时候会出现两个nginx进程,既一个老的,一个新的。而且nginx的日志目录下会出现一个nginx.pid.oldbin文件
8.从容关闭nginx进程
kill -WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin`
9.向旧的工作进程发送一个挂起信号
kill -HUP `cat /usr/local/nginx/logs/nginx.pid.oldbin`
10.结束旧的nginx进程,完成升级
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
11.验证nginx是否升级成功
/usr/local/nginx/sbin/nginx -v

评论 (0)