nginx实现热部署(平滑升级)

127 篇文章 0 订阅
36 篇文章 0 订阅

这里我们使用的是上一篇文章封装好的rhel7.3的虚拟机,主机名修改成了server1

环境:

          虚拟机server1:rhel7.3系统

          软件:nginx-1.14.2.tar.gz、nginx-1.15.8.tar.gz  ==> 点击下载

我们这里的思想是热部署将nginx-1.14.2版本升级到nginx-1.15.8

整个热部署的思想是

修改配置文件nginx.conf后,重新生成新的worker进程,当然会以新的配置进行处理请求,而且新的请求必须都交给新的worker进程,至于老的worker进程,等把那些以前的请求处理完毕后,kill掉即可。

1.编译安装nginx(旧版本)

这里我使用lftp将两个包放在了封装好已经可以使用的虚拟机上,只需要解压编译安装即可

tar zxf nginx-1.14.2.tar.gz
yum install gcc zlib-devel pcre-devel -y
cd nginx-1.14.2
vim auto/cc/gcc     ##屏蔽其中的debug
./configure --prefix=/usr/local/nginx
make&&make install

这样nginx就成功的安装在了server1上了,此时我们可以查看nginx的版本

/usr/local/nginx/sbin/nginx -v

开启nginx

/usr/local/nginx/sbin/nginx

2.编译新的nginx版本,并获取二进制文件

tar zxf nginx-1.15.8.tar.gz
cd nginx-1.14.2
vim auto/cc/gcc                     ##屏蔽其中的debug
./configure --prefix=/usr/local/nginx
make                                ##切忌不要make install
cd objs
ls                                  ##如下图所示,nginx是我们需要的二进制文件

 

3.热部署

我们可以使用以下命令查看nginx的进程

ps -ef |grep nginx	##查看nginx的进程

开始之前,我们首先要进行一个备份,回滚的时候会用到

cd /usr/local/nginx/sbin
cp nginx nginx.old                            ##这样就备份了老的nginx

结下来就可以进行部署了

cp -f /root/nginx-1.15.8/objs/nginx /usr/local/nginx/sbin/
kill -USR2 2086                     ##相当于reload                            
ps -ef | grep nginx
kill -WINCH 2086                    ##相当于kill -9
ps -ef | grep nginx
/usr/local/nginx/sbin/nginx -v

如上图所示,当我们替换掉nginx二进制文件以后,我们使用kill -USR2使新的nginx上线,然后使用kill -WINCH命令杀掉原来的进程,查看版本号,就已经是1.15了

4.回滚

如果我们发现升级有问题,我们想回滚怎么办呢?

cp -f  /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx
ps -ef |grep nginx

kill -HUP 2104
ps -ef |grep nginx
kill -USR2 2104
kill -WINCH 2104
ps -ef |grep nginx
/usr/local/nginx/sbin/nginx -v

这样就回滚回了1.14版本

ok~

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值