如果想对Nginx的版本进行升级,或者我们需要增加一些新的模块,最简单的做法就是停止当前的Nginx服务,然后开启新的Nginx服务。但是这样会导致一段时间内,用户无法访问服务器。
为了解决这个问题就出现了平滑升级。这个也是Nginx的一大特点。
需求:Nginx的版本最开始使用的是Nginx1.14.2,由于服务升级,需要将Nginx的版本升级到1.16.1,要求不中断服务。
解决方案:
方案一:使用Nginx服务信号完成Nginx的升级
方案二:使用Nginx安装目录的make命令完成升级

环境准备

1.准备两个版本 1.14.2 与 1.16.1
2.使用Nginx源码安装的方式将 1.14.2版本安装成功并正确访问
将1.14.2编译安装、将1.16.1编译好

服务信号进行升级、

第一步:将1.14.2版本的sbin目录下的nginx进行备份
mv nginx nginx.old

第二步:将1.16.1安装目录编译后的objs目录下的nginx文件,拷贝到原来/usr/local/nginx/sbin目录下
cd ~/nginx/core/nginx-1.16.1/objs
cp nginx /usr/local/nginx/sbin

第三步:发送USR2信号给Nginx 1.14.2版本的master进程
kill -USR2 cat /usr/local/logs/nginx.pid

第四步:发送信号QUIT给Nginx1.14.2版本对应的master进程
kill -QUIT CAT /usr/local/logs/nginx.pid.oldbin

使用Nginx安装目录的make命令完成升 级

第一步:将1.14.2版本的sbin目录下的nginx进行备份
mv nginx nginx.old

第二步:将1.16.1安装目录编译后的objs目录下的nginx文件,拷贝到原来/usr/local/nginx/sbin目录下
cd ~/nginx/core/nginx-1.16.1/objs
cp nginx /usr/local/nginx/sbin

第三步:进入到安装目录,执行make upgrade

第四步:查看更新是否成功

无论是方案一还是方案二 都是使用到信号来对nginx的升级进行控制