我本地测试的是将1.26.2升级为1.26.3
1:先将nginx上传进行解压
tar -zxvf nginx-1.26.3.tar.gz
2:查看之前nginx安装的参数
/usr/local/nginx/sbin/nginx -V #(/usr/local/nginx/sbin/nginx是nginx的安装路径。每个人不同,大写的V)
3:进行预编译(进入到新版本的nginx当中)
./configure --prefix=/data/nginx --with-http_ssl_module (每个人的参数不同,写第二步查询到的参数)
会有报错不影响
4:然后进行编译(还是在新版本当中,跟步骤三的位置一样)
make #make install 有些人说不用执行这一步,有些人说可以执行没啥问题,我没有执行
5:进行到1.26.3的objs当中找到二进制的nginx文件,将nginx文件拷贝到旧版的sbin文件下面,拷贝之前将就得nginx进行备份,备份为nginx.old
* 注 拷贝之前必须要将旧的nginx进行备份
mv /data/nginx-1.26.3/objs/nginx /data/nginx-1.26.2/sbin/
6:查看新旧版本
./nginx -V
./nginx.old -V
7:查看当前nginx的主进程号
cat /data/nginx-1.26.2/logs/nginx.pid (pid在logs文件下面)
ps -ef|grep nginx
!ps
ps -aux |grep nginx
8:进行平滑升级
* 注 —USR2 一定写对,否则会升级失败,如果升级失败,就直接启动新版nginx
kill -USR2 1520 # 这里是查询到的主进程
9:查看升级是否成功 查看进程号,有两个master 跟两个worker表示升级成功
!ps
10:关闭旧进程
* 二选一 一般都是关掉子进程
kill -WINCH 1520 停掉子进程
kill -QUIT 1520 可以直接关掉主进程
11:页面发送请求查看 nginx的版本