nginx 的版本最开始使用的是 nginx-1.18.0
, 由于服务升级,需要将 nginx 的版本升级到 nginx-1.19.7
,要求 nginx 不能中断提供服务。
为了应对上述的需求,提供两种解决方案:
- 方案1:
make upgrade
完成升级 - 方案2: 服务信号 完成升级
nginx 版本升级
环境说明
当前是 centos7 服务器。
点击进入 nginx 下载页面
环境准备
1)已安装的 nginx 版本信息
nginx -v 或者 /usr/local/nginx/sbin/nginx -v
可以看出当前版本为 1.18.0
,如下图所示:
2)下载当前最新版本 nginx-1.19.7
,并通过xftp上传至服务器,然后执行解压命令。
tar -zxvf nginx-1.19.7.tar.gz
如下图所示:
3)解压后,对最新版 nginx 进行配置
(1)查看现有版本(老版本)nginx 的 configure
配置信息
nginx -v
如图所示,得到 configure
的配置信息。
(2)然后,再对新版 nginx 进行配置。
./configure --prefix=/usr/local/nginx
如下图所示:
4)接着,进行 make
make
进行编译,切记千万不要输入 make install
,如下图所示:
5)这样,最新版本nginx的目录下会多出来一个objs目录,如下图所示:
6)对老版本 sbin 目录下的 nginx 进行备份:
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
如下图所示:
7)将编译好的 objs
目录下的 nginx
文件,复制到 /usr/local/nginx/sbin
目录。
cp /root/nginx-1.19.7/objs/nginx /usr/local/nginx/sbin/nginx
如下图所示:
方案1:make upgrade 命令升级
1)对 nginx 升级
make upgrade
如下图所示:
2)查看升级后的版本
/usr/local/nginx/sbin/nginx -v
可以看到升级成功,并且过程中服务不中断,如下图所示:
5)通过浏览器可以访问到nginx的主页。
如下图所示:
方案2:服务信号升级
1)平滑重启升级nginx
发送信号 usr2
给 nginx 的 1.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
到此这篇关于nginx 版本升级的实现方法的文章就介绍到这了,更多相关nginx 版本升级内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论