平滑升级Nginx服务器
一般,我们升级nginx的版本时
首先会杀掉旧的nginx进程,然后替换二进制nginx文件,最后再启动nginx
但如果某些重要的服务器,在升级nginx过程中,不能停止服务时
就可以使用nginx来平滑升级,使服务不间断,过程很简单:
折叠复制代码
- #备份旧的nginx
- mv /root/nginx/sbin/nginx /root/nginx/sbin/nginx.$cdate
- #拷贝新的nginx
- cp nginx /root/nginx/sbin/nginx
- #验证conf文件的正确性
- /root/nginx/sbin/nginx -t -c /opt/conf/nginx.conf
- #发送USR2信号
- kill -USR2 `cat /opt/log/nginx.pid`
- #平滑关闭老的nginx进程
- kill -QUIT `cat /opt/log/nginx.pid.oldbin`
在发送USR2信号后,旧的nginx进程的pid文件被mv成nginx.pid.oldbin
新起的nginx进程的pid文件为nginx.pid
当旧nginx进程的所有连接都已经断掉后,则旧的nginx进程会全部退出