首页 > 系统相关 >Nginx平滑升级版本

Nginx平滑升级版本

时间:2022-09-29 18:34:25浏览次数:63  
标签:00 nginx 平滑 sbin Nginx usr 版本 local

Nginx平滑升级版本

一,查看现目前版本,准备预升级版本的安装包

#查看nginx版本
/usr/local/nginx/sbin/nginx -v
#测试nginx访问是否正常,此处开放的为19999端口

image-20220929144714812

image-20220929153350579

#新建下载目录
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 $?

image-20220929160823860

image-20220929160846411

#查看是否编译成功
ls -l /usr/local/nginx-1.23.0/
#查看版本
/usr/local/nginx-1.23.0/sbin/nginx -v

image-20220929160948373

image-20220929161059620

三,升级到新版本

#查看当前版本
/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

image-20220929165816707

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

kill -WINCH 9629
ps -ef|grep nginx

image-20220929171101138

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

image-20220929171147079

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

image-20220929171355754

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

kill -QUIT <old_master_PID>
kill -QUIT 9629

image-20220929173154190

到此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

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

标签:00,nginx,平滑,sbin,Nginx,usr,版本,local
From: https://www.cnblogs.com/blogof-fusu/p/16742586.html

相关文章

  • MySQL5.7及以上版本:1055错误解决
    今天在迁移数据库到服务器,再运行本地的查询语句时出现1055错误。该错误是关于groupby的,原因是MySql5.7以上,sql_mode中的“only_full_group_by”是默认开启的解决方案......
  • Nginx学习
    参考:https://www.bilibili.com/video/BV13a411q753/?spm_id_from=333.337.search-card.all.click&vd_source=c85b4a015a69e82ad4f202bd9b87697fNginx概述Nginx是一款轻量......
  • nginx 配置静态网页
    nginx配置静态网页进入配置文件/etc/nginx/conf.d/default.conf配置的时候小伙伴们一定要记得先备份一份文件,这样方便后续出错恢复!server{  listen   端口号;......
  • nginx 配置静态网页
    nginx配置静态网页进入配置文件/etc/nginx/conf.d/default.conf配置的时候小伙伴们一定要记得先备份一份文件,这样方便后续出错恢复!server{  listen   端......
  • 二进制部署k8s集群v1.23.9版本-21-安装LTS任务调度
    21.1、准备镜像192.168.1.200服务器操作lts-jobtracker镜像dockerpullharbor.qgutech.com/qx-apaas/lts-jobtracker:v1dockertag8f1e3d395515harbor.qgutech.com/......
  • Cinema 4d R25 C4D Mac版本的Arnold 渲染器 crack.
    官网下载Mac版C4DR25的安装包之后安装:https://wdown.solidangle.com/c4dtoa/C4DtoA-4.4.0-darwin-R25.pkg再下载:链接:https://pan.baidu.com/s/1XSfbps41kDRESHSMpbQiW......
  • 上传到Nginx的图片文件如何拥有可读的权限
    描述使用springmvc做了一个文件上传的功能,上传到nginx目录下的一个文件夹,但是通过目录访问的时候却报403的错误去服务器查看了一下文件的权限,发现没有可读权限,于是定位......
  • nginx常用命令
    验证配置是否正确:nginx-t查看Nginx的版本号:nginx-V启动Nginx:startnginx快速停止或关闭Nginx:nginx-sstop正常停止或关闭Nginx:nginx-squit配置文件修改重装载......
  • 分布式版本控制系统 Git 的使用
    简介与安装配置Git是目前世界上最先进的分布式版本控制系统分布式版本控制:即每个参与协作的人都拥有全部的代码!有一定安全隐患!所有版本信息仓库全部同步到本地的每个用......
  • Centos8通过dnf安装certbot,设置nginx自启动
    如果centos8默认软件包里没有certbot,就需要更新软件包:dnfinstallepel-releasednfupgrade一般更新包后就可以安装了dnfinstallcertbotnginx安装后设置自启动:......