一、概要
nginx升级的原因有两种:1、nginx版本升级需要 2、nginx新添新的模块
二、nginx升级原理
多进程模式:nginx分为主进程(master)和工作进程(work),主进程就是nginx本身,工作进程是看你电脑分配了多少核cpu,但是展示工作进程数还是nginx.conf配置文件种定义。
主进程支持的信号
TERM , INT : 立刻退出
QUIT : 等待工作进程结束后再退出
KILL : 强制终止进程
HUP : 重新加载配置文件,使用新的配置启动工作进程,并逐步关闭旧进程。
USR1 : 重新打开日志文件
USR2 : 启动新的主进程,实现热升级
WINCH : 逐步关闭工作进程
工作进程支持的信号
TERM , INT : 立刻退出
QUIT : 等待请求处理结束后再退出
USR1 : 重新打开日志文件
三、nginx平滑升级实战
1、首先先检查自己已经编译安装好了ngnix版本(平滑升级只针对编译安装)
/usr/local/nginx/sbin/nginx -V
2、安装新升级的nginx安装包。将安装位置放在和之前的nginx位置相同的地方。
tar -zxvf nginx-1.26.1.tar.gz -C /usr/local/
3、进入新版本的安装目录,cd nginx-1.26.1目录 ,进行初始化安装配置。
./configure --prefix=/usr/local/nginx \
--group=nginx \
--user=nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/tmp/nginx/client_body \
--http-proxy-temp-path=/tmp/nginx/proxy \
--http-fastcgi-temp-path=/tmp/nginx/fastcgi \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-pcre \
--with-http_realip_module \
--with-stream
4、进行make编译,这里是重点,绝对不能进行make install,如果进行make install 老版本的所有信息就会被覆盖掉。只有make编译了以后, nginx-1.26.1目录 下才会有nginx的执行文件。
make
5、在确定有了nginx以后,把之前的nginx二进制文件备份(也就是安装后的执行文件)
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_$(date +%F)
6、将这个新版本的执行文件复制到/usr/local/nginx/sbin/中
7、检测新版本的nginx是否正常
8、给nginx发送平滑迁移信号(如果不清楚pid,可以看nginx配置文件pid在哪个路径)或者直接使用netstat -tunlp | grep nginx 来过滤。 这里的 -USR2 : 启动新的主进程,实现热升级。
kill -USR2 `cat /var/run/nginx.pid`
9、查看nignx pid,会出现一个nignx.pid.oldbin
ll /var/run/nginx.pid*
10、从容的关闭旧的nginx进程,参数 WINCH : 逐步关闭工作进程
kill -WINCH `cat /var/run/nginx.pid.oldbin`
11、执行不在启动旧的工作进程 ,参数 HUP : 重新加载配置文件,使用新的配置启动工作进程,并逐步关闭旧进程。
kill -HUP `cat /var/run/nginx.pid.oldbin`
12、结束工作进程,完成此次升级 ,参数QUIT : 等待工作进程结束后再退出
kill -QUIT `cat /var/run/nginx.pid.oldbin
13、验证nginx是否升级成功
/usr/local/nginx/sbin/nginx -V
标签:--,平滑,pid,var,升级,nginx,进程,path From: https://blog.csdn.net/yd3202/article/details/141217509