Nginx的平稳升级和热回退

前言:

1、什么是nginx

Nginx是一个高性能的HTTP和反向代理的web服务器,同时提供IMAP/PO

P/SMTP服务,

Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件代理服务器,

在BSD-like协议下发行,其特点是占用内存少,并发能力强,事实上nginx

的并发能力在同类型的网页服务器中表现较好。

nginx的热部署和其并发模型有着密不可分的关系,说白了,就是因为mas

ter进程的关系,当通知nginx重度配置文件的时候,master进程会进行语法

错误的判断,如果存在语法错误的话,返回错误,不进行装载,如果配置

文件中没有错误,那末nginx也不会将新的配置文件调整到所有的worker中

,而是,先不改变已经建立链接的worker.等待worker将所有请求结束之后

,将原先在旧的配置下启动的worker杀死,然后使用新的配置建立新的wo

eker。

 

正文:

 

一、进行nginx的安装

(这里我们使用的是nginx-1.15.8的压缩包)

 

进行压缩包的解压和相关软件的安装

tar zxf nginx-1.15.8.tar.gz     ###进行压缩包的解压

 

进行vim文件的复制使之配置文件进行高亮显示(进行语法的纠错)

make .vim              ###进行隐藏文件的建立
cp /mnt/nginx-1.15.8/contrib/vim/* .vim/     ###进行文件的复制

 

进行debug日志的关闭(如果debug日志开启将会导致产生大量的日志,使其过多的占用内存)

vim /mnt/nginx-1.15.8/auto/cc/gcc     ###进行debug日志的关闭

 

Nginx的平稳升级和热回退_第1张图片

 

进行编译时软件依赖性的安装

yum install pcre-devel zlib-devel gcc -y    ###进行软件依赖性的安装

Nginx的平稳升级和热回退_第2张图片

Nginx的平稳升级和热回退_第3张图片

 

进行nginx源码的编译

./configure --prefix=/usr/local/nginx --with-file-aio    ###进行源码的编译 

Nginx的平稳升级和热回退_第4张图片

Nginx的平稳升级和热回退_第5张图片

 

进一步进行编译

make      ###进一步进行编译

Nginx的平稳升级和热回退_第6张图片

Nginx的平稳升级和热回退_第7张图片

 

 

进行软件的安装

make install     ###进行软件的安装

 

Nginx的平稳升级和热回退_第8张图片

 

进行nginx用户的创建,并进行nginx配置稳健的编辑(使nginx服务可以使用nginx用户进行管理)

useradd nginx      ###进行用户的建立
vim /usr/local/nginx/conf/nginx.conf     ###进行配置文件的编辑

Nginx的平稳升级和热回退_第9张图片

 

进行服务配置文件语法的检查

/usr/local/nginx/sbin/nginx   -t     ###进行服务的配置文件的检查
/usr/local/nginx/sbin/nginx          ###进行服务的开启
netstat -antlp | grep nginx          ###进行服务端口的查看

 

使用浏览器进行访问,看服务是否能够正常运行

Nginx的平稳升级和热回退_第10张图片

 

二、进行服务的平稳升级和热回退

在不停止服务的情况下进行服务的升级

这里我们选择的升级版本为nginx-1.16.0

 

进行软件包的解压

tar zxf   nginx-1.16.0.tar.gz    ###进行软件包的解压

 

进行debug日志的关闭

vim /mnt/nginx-1.16.0/auto/cc/gcc      ###进行debug日志的关闭

Nginx的平稳升级和热回退_第11张图片

 

进行软件的编译(编译参数和上一个版本一致)

./configure --prefix=/usr/local/nginx     --with-file-aio    ###进行源码的编译

Nginx的平稳升级和热回退_第12张图片

Nginx的平稳升级和热回退_第13张图片

 

进行软件的进一步编译

make      ###进行软件的进一步编译

Nginx的平稳升级和热回退_第14张图片

 

进行版本nginx-1.15.8二进制文件的备份(当服务升级失败后保证旧的服务依然可以继续工作)

cd   /usr/local/nginx/sbin      ###进入到二进制所在文件夹
co nginx  nginx.old             ###进行二进制文件的备份

 

查看未升级前的nginx的版本

/usr/local/nginx/sbin/nginx     -V    ###查看工作状态下nginx的版本

 

将nginx-1.15.8的二进制文件使用nginx-1.16.0进行强制覆盖

cp -f nginx   /usr/local/nginx/sbin/nginx    ###进行二进制文件的强制覆盖
ps ef | grep nginx     ###进行进程的查看

Nginx的平稳升级和热回退_第15张图片

 

设定旧的服务不再接收用户请求(下线),新服务启动子进程接收用户请求(上线)

kill -USR2 3760     ###设定新的子进程开始接收用户的访问请求,旧的不再九首用户的访问请求
ps -ef | grep nginx   ###进行进程的查看

Nginx的平稳升级和热回退_第16张图片

 

进行旧服务的进程关闭

kill -WINCH  3760    ###进行旧服务进程的关闭
ps -ef | grep nginx    ###进行进程的查看

Nginx的平稳升级和热回退_第17张图片

 

进行服务版本的查看

/usr/local/nginx/sbin/nginx   -V    ###进行nginx版本号的查看

 

当服务升级失败后进行版本的回调


进行二进制文件的强行覆盖

cp -f nginx.old nginx     ###进行二进制文件的强行覆盖
ps -ef | grep  nginx      ###进行nginx服务进程的查看

Nginx的平稳升级和热回退_第18张图片

 

进行配置文件的动态更新

kill -HUP  3760   ###进行配置文件的动态更新
ps -ef | grep nginx   ###进行服务进程的查看

Nginx的平稳升级和热回退_第19张图片

 

让新版本的服务停止接收用户请求

kill -USR2 15900    ###设定新升级的版本不再接收用户请求
ps -ef | grep nginx   ###进行服务进程的查看

Nginx的平稳升级和热回退_第20张图片

 

进行原始版本子进程的拉起

kill -WINCH 15900    ###进行新版服务的拉起
ps -ef | grep nginx   ###进行服务进程的查看

Nginx的平稳升级和热回退_第21张图片

 

进行回退后版本的查看

/usr/local/nginx/sbin/nginx   -V    ###进行服务版本的查看

 

进行新版本进程的查看,并且进行进程的关闭

ps ax | grep nginx    ###进行服务进程的查看
kill -9 15900         ###进行新版服务进程的结束

Nginx的平稳升级和热回退_第22张图片

 

 

使用浏览器进行访问

Nginx的平稳升级和热回退_第23张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Nginx的平稳升级和热回退)