nginx平滑升级过程
Nginx方便地帮助我们实现了平滑升级。其原理简单概括,就是:
(1)在不停掉老进程的情况下,启动新进程。
(2)老进程负责处理仍然没有处理完的请求,但不再接受处理请求。
(3)新进程接受新请求。
(4)老进程处理完所有请求,关闭所有连接后,停止。
这样就很方便地实现了平滑升级。一般有两种情况下需要升级Nginx,一种是确实要升级Nginx的版本,另一种是要为Nginx添加新的模块。
二、Nginx平滑升级原理
Nginx服务接收到USR2信号后,将Nginx.pid文件添加.oldbin变成nginx.pid.oldbin文件;
然后执行新版本Nginx服务器的二进制文件启动服务,如果新的服务启动成功,
系统中将有新旧两个Nginx主进程共同提供Web服务,之后,
需要向旧的Nginx服务进程发送WINCH信号,
使旧的Nginx服务平滑停止,并删除Nginx.pid.oldbin文件。
Nginx信号简介
1.主进程支持的信号
2.TERM, INT: 立刻退出
3.QUIT: 等待工作进程结束后再退出
4.KILL: 强制终止进程
5.HUP: 重新加载配置文件,使用新的配置启动工作进程,并逐步关闭旧进程。
6.USR1: 重新打开日志文件
7.USR2: 启动新的主进程,实现热升级
8.WINCH: 逐步关闭工作进程
9.工作进程支持的信号
10.TERM, INT: 立刻退出
11.QUIT: 等待请求处理结束后再退出
12.USR1: 重新打开日志文件
三、nginx升级过程与步骤
1.查看当前版本并下载新版本Nginx
/usr/local/nginx/sbin/nginx -V
#记录原来的配置信息
wget -c http://nginx.org/download/nginx-1.16.0.tar.gz
# 下载的版本为nginx-1.16.0
解压源码包tar -xzf nginx-1.16.0.tar.gz
# 解压源码包
cd nginx-1.16.0
2.安装make新版本
./configure --user=www --group=www --prefix=/home/server/nginx
--with-http_stub_status_module --with-http_ssl_module
--with-http_gzip_static_module --with-http_v2_module
make
只需要到 make,千万不要 make install
如果make install 会将原来的配置文件覆盖
备份老版程序 mv 老版本的可执行程序
mv /home/server/nginx/sbin/nginx /home/server/nginx/sbin/nginx2.old
拷贝新的可执行文件
cp /root/nginx-1.16.0/objs/nginx /home/server/nginx/sbin/
3.make upgrade 平滑升级
执行 /home/server/nginx/sbin/nginx -t 测试
make upgrade
文章链接:https://www.rjyl100.cn/detail/129.html
版权声明:文章由本站原创或网友分享,禁止转载!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请与我们联系,我们将及时更正、删除,谢谢。
温馨提示:本站信息来自互联网或网友分享,请大家查阅时,谨慎选择、自辩真伪,自负责任。
版权声明:文章由本站原创或网友分享,禁止转载!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请与我们联系,我们将及时更正、删除,谢谢。
温馨提示:本站信息来自互联网或网友分享,请大家查阅时,谨慎选择、自辩真伪,自负责任。