首页IT科技nginx的平滑升级(Nginx平滑升级版本)

nginx的平滑升级(Nginx平滑升级版本)

时间2025-06-18 07:16:15分类IT科技浏览4220
导读:Nginx平滑升级版本 一,查看现目前版本,准备预升级版本的安装包 #查看nginx版本...

Nginx平滑升级版本

一               ,查看现目前版本                   ,准备预升级版本的安装包 #查看nginx版本 /usr/local/nginx/sbin/nginx -v #测试nginx访问是否正常        ,此处开放的为19999端口 #新建下载目录 mkdir -p /home/nginx #下载预升级版本的安装包 wget -c https://nginx.org/download/nginx-1.23.0.tar.gz #解压 tar zxf nginx-1.23.0.tar.gz 二            ,编译安装新版本 #进入解压目录 cd /home/nginx/nginx-1.23.0/ #使用默认配置并指定配置目录 ./configure --prefix=/usr/local/nginx-1.23.0 #查看是否报错 echo $? #编译安装 make && make install echo $? #查看是否编译成功 ls -l /usr/local/nginx-1.23.0/ #查看版本 /usr/local/nginx-1.23.0/sbin/nginx -v 三                   ,升级到新版本 #查看当前版本 /usr/local/nginx/sbin/nginx -v #nginx version: nginx/1.13.7 cd /usr/local/nginx/sbin/ #备份原有nginx二进制文件 mv nginx nginxback #拷贝新的二进制文件到该目录 cp /usr/local/nginx-1.23.0/sbin/nginx ./

随后进行平滑升级

#查看当前运行nginx的进程号 ps -ef|grep nginx # kill -USR2 9629 ps -ef|grep nginx

这时新的master进程已经正常开启           ,但老的work进程也存在        ,所以我们使用下面的命令                    ,将老的work进程发出平滑停止的信号              ,如下:

kill -WINCH 9629 ps -ef|grep nginx

此时    ,老的work进程已经停止                     ,接下来我们测试是否能正常访问:

#在查询当前版本 /usr/local/nginx/sbin/nginx -v #nginx version: nginx/1.23.0 #版本号以改变就代表升级完成 ps -ef|grep nginx

此时可以看见老的master进程还在                 ,如果在版本升级完成后,没有任何问题                  ,需要关闭老的master进程的话                    ,可以使用下面的命令:

kill -QUIT <old_master_PID> kill -QUIT 9629

到此nginx平滑升级就结束了    ,平滑升级的好处在于不用停止ginx服务               ,对访问用户来说是完全感知不到                   ,所以nginx热部署就已经完成了               。

四        ,如果在升级之后发现因版本问题不兼容应用程序            ,怎么回退

在上面的结果中                   ,我们也能看到老的master进程是一直存在           ,在没有手工关闭前        ,它是不会自已关闭的                    ,这种设计是有好处的              ,好处就是为了升级新版本后    ,如果出现问题能及时快速的回滚到上一个稳定版本                   。

也就是说                     ,在检查出没问题前                 ,请务必不执行以下指令        。

kill -QUIT <old_master_PID>

——下面是回退的操作——

ps -ef|grep nginx #root 9629 1 0 14:18 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c #/usr/local/nginx/conf/nginx.conf #root 20858 9629 0 14:33 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c #/usr/local/nginx/conf/nginx.conf #nobody 20859 20858 0 14:33 ? 00:00:00 nginx: worker process #root 22774 19064 0 14:37 pts/0 00:00:00 grep --color=auto nginx cd /usr/local/nginx/sbin/ #重命名nginx二进制文件 mv nginx nginx-1.23.0 #把之前备份的修改回来 mv nginxback nginx kill -USR1 9629 ps -ef|grep nginx #root 9629 1 0 14:18 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c #/usr/local/nginx/conf/nginx.conf #root 20858 9629 0 14:33 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c #/usr/local/nginx/conf/nginx.conf #nobody 20859 20858 0 14:33 ? 00:00:00 nginx: worker process #root 22774 19064 0 14:37 pts/0 00:00:00 grep --color=auto nginx ./nginx -v #nginx version: nginx/1.13.7

接下来测试是否能正常访问,如果同上面一样可以正常访问                  ,就证明已经回滚成功                    ,这个回滚的操作对用户来说也是不可感知的            。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue中的ts(何为 Vue3 组件标注 TS 类型,看这篇文章就够了!) 五大关键词拓展的渠道是什么呢(五大关键词拓展的渠道)