起因
今天,突然心血来潮点了下Nginx官网,我发现最新稳定版本已经变成了1.22.0。于是,就打算将Nginx升级到最新版本,简单查询了下资料发现,Nginx是可以平滑升级的。平滑升级,简单来说就是不停服务升级,对于Nginx的用户来说,是完全感知不到Nginx服务是有停止过的。
版本说明
升级前 | 升级后 |
---|---|
1.20.2 | 1.22.0 |
升级步骤
1、查询当前Nginx配置选项
在升级Nginx服务之前,先看下当前的Nginx服务配置的相关模块等,我这里Nginx服务是安装在/data目录下的,因此直接进入到/data目录下去查看。
# 进入到sbin目录下
[root@localhost ~]# cd /data/sbin
# 查询配置选项及版本
[root@localhost sbin]# ./nginx -V
2、下载新的Nginx包
查询完配置后,下载最新版本的Nginx包,建议是将其放到一个统一的目录中,易于管理。我这里以/usr/local/src目录为例。
# 进入/usr/local/src目录
[root@localhost sbin]# cd /usr/local/src
# wget方式下载最新版Nginx包
[root@localhost src]# wget https://nginx.org/download/nginx-1.22.0.tar.gz
3、解压包并编译
下载好包之后,解压tar.gz包;解压后,进入到nginx目录中,以同样的编译参数去编译。注意,编译的时候不能带install。编译后,同级目录下生成objs文件夹。
# 解压tar.gz包
[root@localhost src]# tar xvf nginx-1.22.0.tar.gz
# 进入解压后的目录
[root@localhost src]# cd nginx-1.22.0
# 配置模块及参数
[root@localhost nginx-1.22.0]# ./configure --prefix=/data
# 编译
[root@localhost nginx-1.22.0]# make --prefix=/data
4、备份旧文件,拷贝新文件
将旧的nginx二进制文件备份一下,然后拷贝objs文件夹中的nginx二进制文件。
# 进入sbin目录中
[root@localhost nginx-1.22.0]# cd /data/sbin
# 备份旧版本的可执行文件
[root@localhost sbin]# mv nginx nginx.1.20.2
# 拷贝新版本生成的可执行文件
[root@localhost sbin]# cp /usr/local/src/nginx-1.22.0/objs/nginx /data/sbin
5、升级
nginx二进制文件替换后,我们执行命令升级Nginx的版本。
# 进入到软件目录中
[root@localhost sbin]# cd /usr/local/src/nginx-1.22.0
# 升级版本
[root@localhost nginx-1.22.0]# make upgrade
6、验证版本
升级成功后,验证一下。
# 进入nginx目录中
[root@localhost nginx-1.22.0]# cd /data/sbin
# 查询配置选项及版本
[root@localhost sbin]# ./nginx -V
评论区