一、热部署相关概念
1.1 nginx服务的进程
nginx是多进程结构,多进程结构设计是为了保证nginx的高可用高可靠,包含:
- master进程:也是父进程,负责worker进程的管理。
- worker进程:也是子进程,worker进程一般配置成与服务器的CPU核数相同,worker进程用来处理具体的请求的。
- cache进程:也是子进程,包括cache manager和cache loader进程,主要是反向代理时做缓存使用。
1.2 nginx可进行热部署的原理
热部署,就是配置文件nginx.conf修改后,不需要stop Nginx,不需要中断请求,就能让配置文件生效,即在线升级,即不打断用户的请求下更新版本。 通过上文我们已经知道worker进程负责处理具体的请求,那么如果想达到热部署的效果,Nginx可以修改配置文件nginx.conf后,重新生成新的worker进程,当然会以新的配置进行处理请求,而且新的请求必须都交给新的worker进程,至于老的worker进程,等把那些以前的请求处理完毕后,kill掉即可。然后使用新的配置创建新的 worker,所以可以做到在线更新版本,新版本和旧版本的进程可以同时存在,不影响客户的访问。
二、热部署之平滑升级及回滚
实验环境 :搭建成功版本为1.15.9的ngi