一般,我们升级nginx的版本时


首先会杀掉旧的nginx进程,然后替换二进制nginx文件,最后再启动nginx


但如果某些重要的服务器,在升级nginx过程中,不能停止服务时


就可以使用nginx来平滑升级,使服务不间断,过程很简单:



折叠复制代码




  1. #备份旧的nginx  

  2. mv /root/nginx/sbin/nginx /root/nginx/sbin/nginx.$cdate  

  3. #拷贝新的nginx  

  4. cp nginx /root/nginx/sbin/nginx  

  5. #验证conf文件的正确性  

  6. /root/nginx/sbin/nginx -t -c /opt/conf/nginx.conf  

  7. #发送USR2信号  

  8. kill -USR2 `cat /opt/log/nginx.pid`  

  9. #平滑关闭老的nginx进程  

  10. kill -QUIT `cat /opt/log/nginx.pid.oldbin`  






在发送USR2信号后,旧的nginx进程的pid文件被mv成nginx.pid.oldbin


新起的nginx进程的pid文件为nginx.pid


当旧nginx进程的所有连接都已经断掉后,则旧的nginx进程会全部退出