nginx版本升级

admin Nginx1 619字数 1771阅读模式

1、需求

因为一些原因,比如说 nginx发现漏洞、应用一些新的模块等等,想对 Nginx 的版本进行更新,最简单的做法就是停止当前的Nginx服务,然后开启新的Nginx服务。但是这样会导致在一段时间内,用户是无法访问服务器。
为了解决这个问题,我们就需要用到Nginx服务器提供的平滑升级功能。这个也是Nginx的一大特点,使用这种方式,就可以使 Nginx 在 7*24 小时不间断的提供服务了。

2、需求

Nginx 的版本最开始使用的是 Nginx-1.18.0 , 由于服务升级,需要将 Nginx 的版本升级到Nginx-1.19.7
,要求 Nginx 不能中断提供服务。
为了应对上述的需求,提供两种解决方案:
方案1: make upgrade 完成升级
方案2: 服务信号 完成升级

3、nginx 版本升级

3.1、环境说明
当前是 CentOS7 服务器。
点击进入 nginx 下载页面
3.2、环境准备
1)已安装的 Nginx 版本信息

nginx -V
或者
/usr/local/nginx/sbin/nginx -V

2)下载当前最新版本 nginx-1.19.7,并通过Xftp上传至服务器,然后执行解压命令。

tar -zxvf nginx-1.19.7.tar.gz

如下图所示:
nginx版本升级
3)解压后,对最新版 nginx 进行配置
(1)查看现有版本(老版本)nginx 的 configure 配置信息

nginx -V

如图所示,得到 configure 的配置信息。
nginx版本升级
(2)然后,再对新版 nginx 进行配置。

./configure  --prefix=/usr/local/nginx

如下图所示:
nginx版本升级
4)接着,进行 make

make

进行编译,切记千万不要输入make install ,如下图所示:
nginx版本升级
5)这样,最新版本nginx的目录下会多出来一个objs目录,如下图所示:
nginx版本升级
6)对老版本 sbin 目录下的 nginx 进行备份:

mv /usr/local/nginx/sbin/nginx   /usr/local/nginx/sbin/nginx.old

如下图所示:
nginx版本升级
7)将编译好的objs目录下的nginx文件,复制到/usr/local/nginx/sbin目录。

cp /root/nginx-1.19.7/objs/nginx   /usr/local/nginx/sbin/nginx

如下图所示:
nginx版本升级
3.3、方案1:make upgrade 命令升级
1)对 nginx 升级

make upgrade

如下图所示:
nginx版本升级
2)查看升级后的版本

/usr/local/nginx/sbin/nginx  -V

可以看到升级成功,并且过程中服务不中断,如下图所示:
nginx版本升级
5)通过浏览器可以访问到nginx的主页。
如下图所示:
nginx版本升级
3.4、方案2:服务信号升级
1)平滑重启升级nginx
发送信号USR2Nginx1.18.0 版本对应的 master 进程。

kill -USR2 `cat /usr/local/nginx/log/nginx.pid`

旧版本 Nginx 的 pid 变为 oldbin ,这是旧版本和新版本的 nginx 同时运行,过一端时间等就 nginx 处理完用户请求后,执行下面操作从容关闭旧版本的 Nginx 进程。
2)从容关闭旧版本的Nginx进程

kill -WINCH `cat /usr/local/nginx/log/nginx.oldbin`

3)决定是否升级到新版的 nginx
发送信号 QUIT Nginx 的 1.18.0 版本对应的 master 进程。

## nginx在不重载配置文件启动工作进程
kill -HUP `cat /usr/local/nginx/log/nginx.oldbin`  
## 关闭旧版nginx
kill -QUIT `cat/usr/local/nginx/log/nginx.oldbin`

4)验证nginx是否升级成功

/usr/local/nginx/sbin/nginx -V

4、总结

在整个过程中,Nginx 是一直对外提供服务的。并且当 Nginx 的服务器启动成功后,我们是可以通过浏览器进行直接访问的,同时我们可以通过更改 html 目录下的页面来修改我们在页面上所看到的内容,那么问题来了,为什么我们要修改 htm l目录下的文件,能不能多添加一些页面是 Nginx 的功能更加丰富,还有前面聊到Nginx 的前端功能又是如何来实现的,这就需要我们对 Nginx 的核心配置文件进行一个详细的学习。

版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
admin
  • 本文由 发表于 2023年2月6日 20:56:48
  • 转载请务必保留本文链接:https://www.58pxe.com/9971.html
评论  1  访客  1
    • 匿名
      匿名 4

      小白还是不好下手

    匿名

    发表评论

    匿名网友 填写信息

    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: