Nginx平滑升级版本(nginx升级会有什么影响)

  本篇文章为你整理了Nginx平滑升级版本(nginx升级会有什么影响)的详细内容,包含有nginx如何升级版本 nginx升级会有什么影响 nginx降级 nginx在线升级 Nginx平滑升级版本,希望能帮助你了解 Nginx平滑升级版本。

  

 

 

  

#新建下载目录

 

  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 -efgrep nginx

  kill -USR2 9629

  ps -efgrep nginx

  

 

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

  

kill -WINCH 9629

 

  ps -efgrep nginx

  

 

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

  

#在查询当前版本

 

  /usr/local/nginx/sbin/nginx -v

  #nginx version: nginx/1.23.0

  #版本号以改变就代表升级完成

  ps -efgrep nginx

  

 

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

  

kill -QUIT old_master_PID 

 

  kill -QUIT 9629

  

 

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

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

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

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

  

kill -QUIT old_master_PID 

 

  

 

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

  

ps -efgrep 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 -efgrep 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

  

 

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

  以上就是Nginx平滑升级版本(nginx升级会有什么影响)的详细内容,想要了解更多 Nginx平滑升级版本的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: