nginx的平滑升级(热部署)

79 篇文章 0 订阅
本文介绍了如何进行nginx的源码安装,并详细讲解了平滑升级(热部署)的过程,包括设置worker数,查看进程,以及在升级过程中如何为文件添加高光以便于编辑。在升级时,新旧版本的nginx通过特定的进程管理方式实现无缝切换,确保服务的连续性和稳定性。
摘要由CSDN通过智能技术生成

一、nginx的源码安装

[root@server1 nginx-1.14.2]# vim auto/cc/gcc 
# debug
#CFLAGS="$CFLAGS -g"(注销debug日志)


[root@server1 nginx-1.14.2]# yum install -y gcc pcre-devel zlib-devel(安装编译软件、依赖性软件)
[root@server1 nginx-1.14.2]# ./configure --prefix=/usr/local/nginx/

此时,objs目录如下:
在这里插入图片描述

[root@server1 nginx-1.14.2]# make && make  install(安装)

objs目录发生改变:
在这里插入图片描述

  • 设置Nginx的worker数:
    查看cpu内核数:
    在这里插入图片描述
    编辑nginx配置文件,worker数为自动。

      [root@server1 nginx]# vim conf/nginx.conf
      #user  nobody;
      worker_processes  auto;(worker数与cpu内核数相同或选取自动,根据访问数据自动调节worker数)
    

    [root@server1 nginx-1.14.2]# /usr/local/nginx/sbin/nginx (打开nginx服务)
    查看进程ps ax | grep nginx:
    在这里插入图片描述

  • 为使编辑文件更容易,我们为文件添加高光:

      [root@server1 ~]# mkdir .vim
      [root@server1 ~]# cd nginx-1.14.2/contrib/
      [root@server1 contrib]# ls
      geo2nginx.pl  README  unicode2nginx  vim
      [root@server1 contrib]# cp -r vim/* ~/.vim
      [root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf
    

下图,文件有高光,便于提示我们错误。
在这里插入图片描述

二、平滑升级(热部署)

旧的mask和work开启时,被新的mask和work替换。新版本的不能make install

  • 安装nginx-1.15.8

     [root@server1 ~]# ls
     nginx-1.14.2  nginx-1.14.2.tar.gz  nginx-1.15.8.tar.gz
     [root@server1 ~]# tar zxf nginx-1.15.8.tar.gz 
     [root@server1 ~]# cd nginx-1.15.8
     [root@server1 nginx-1.15.8]# vim auto/cc/gcc 
     # debug
     #CFLAGS="$CFLAGS -g"(注销debug日志)
     [root@server1 nginx-1.15.8]# cd
     [root@server1 ~]# cd /usr/local/nginx/sbin/
     [root@server1 sbin]# cp nginx nginx_old(备份原版的执行脚本)
     [root@server1 nginx-1.15.8]# ./configure --prefix=/usr/local/nginx/
     [root@server1 nginx-1.15.8]# make
    

因为此时旧版本还在运行,所以要强制复制。
在这里插入图片描述
查看进程,此时只有原版本的一个master进程和两个work进程,通过kill信号拉起新的nginx服务。再查看nginx进程此时有两个master进程和两个work进程。之后的访问都会连接到新nginx服务上,但旧版本nginx的work进程此时仍在处理已接收的访问,等连接断开后,其自动关闭。但为限制持续连接,旧版nginx此时的连接时有时间限制的,到时间后自动关闭。
在这里插入图片描述
停止旧nginx,但master进程依然在,为防止新Nginx故障,可及时补救.
在这里插入图片描述
如果新服务出现故障,旧服务上线:
将备份好的原版nginx脚本覆盖掉新nginx的执行脚本。

[root@server1 sbin]# cp nginx_old nginx -f
cp: overwrite ‘nginx’? y

kill -HUP (重载)与reload相同
在这里插入图片描述
停止新nginx服务。查看进程,此时运行的work进程都是旧版nginx的进程。
在这里插入图片描述
此时查看运行的版本恢复成原版本

[root@server1 sbin]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.14.2

可通过查看进程pid关闭服务

[root@server1 sbin]# cat /usr/local/nginx/logs/nginx.pid
6090
[root@server1 sbin]# kill -9 6090
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值