Bootstrap

Linux Nginx服务器 平滑升级和回退

一、热部署相关概念

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

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;