Nginx热部署功能
nginx作为一个优秀的web服务器,优秀的反向代理服务器,并且nginx也支持高可用的特性,nginx还支持热部署的功能。
热部署的特点:在不重启或者关闭进程的情况下,新的应用直接替换旧的应用
更换nginx的二进制命令版本 热部署大致流程
- 备份旧的程序,二进制文件,备份nginx命令,/opt/tbnginx33/sbin/nginx
- 编译安装新的二进制文件,覆盖旧的二进制文件
- 发送USR2信号给旧的master进程
- 发送WINCH信号给旧的master进程
- 发送QUIT信号给旧的master进程
nginx更换版本热部署操作
nginx工作模式是master-worker
确认当前的nginx版本,并且进行备份操作
nginx -v
mv nginx nginx.233 nginx.233 -v #我们也可以查看旧版本的版本号下载编译安装新版本的nginx
wget下载 >> tar解压 >> ./configure安装 >> make >> make insatll
发送一个USR2信号给旧的master process,作用是让nginx旧版本停止接收用户请求,并且切换为新的nginx版本
kill -USR2 ‘cat /opt/tbnginx233/logs/nginx.pid’
当执行完上述命令,nginx-master旧的会重新命命它的pid文件,加上.oldbin后缀,然后再启动一个新的master主进程,以及worker,使用新版本的二进制命令,此时新的nginx进程就平滑过渡了原有进程
检查nginx进程状态
ps -ef | grep nginx
这个时候我们应该都能够看到两组nginx进程,且第二组的进程号是由原进程衍生出来的
我们查看两个进程号的配置文件,确定新的进程文件是不是第二组的进程号
cat nginx.pid.oldbin cat nginx.pid
此时发送WINCH信号,给旧的master进程,让旧的master进程优雅的退出
kill -WINCH ‘cat /opt/tbnginx233/logs/nginx.pid.oldbin’
这个时候我们才用ps查看nginx进程,应该可以看到第一组的原有nginx进程所有worker进程都已经退出了
此时我们可以查看nginx 服务器能否正常使用,如果一切正常,我们就可以讲旧的master主进程也给干掉了,也就完成了热部署的全过程
kill 旧master进程号
