本篇文章为你整理了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。