资讯动态

Nginx的平滑升级

发布时间:2026/10/15 23:17:05 来源:尧图企业网站定制
1.什么叫作Nginx的平滑升级在不停止Nginx服务不中断用户网站的访问,不丢请求,浏览器不会报错502/404的前提下把旧版本的Nginx,替换成新版本Nginx,全程网站一直访问用户毫无感觉2.信号参数kill 命令 传输信号给进程kill不仅仅可以杀死进程其底层核心是给进程传递一个信号因为kill -9与kill -15使用较多给大家带来错觉重点平滑升级kill -USR2 pid关闭master下面的所有work子进程kill -WINCH pid优雅的退出masterkill -QUIT pid3.平滑升级① 旧的先不停掉② 新的又可以起来③ 旧的和新的同时提供服务旧的请求完成之后就停掉旧进程-USR2 平滑启动一个新的进程平滑升级-WINCH 优雅的关闭子进程Nginx分为master主进程以及worker子进程-QUIT 优雅关闭主进程图解第一步编译安装新软件注意systemctl管理的nginx软件没办法使用平滑升级只有原生启动的Nginx才可以使用平滑升级原生启动命令cd /usr/local/nginx ; sbin/nginxsystemctl stop nginxcd /usr/local/nginx/sbin/nginxps -ef |grep nginxtar xvf nginx-1.26.2.tar.gzcd nginx-1.26.2yum install openssl-devel -y./configure --prefix/usr/local/nginx --userwww --groupwww --with-http_ssl_module --with-http_stub_status_module --with-http_realip_modulmake make install为什么一定要通过systemctl stop nginx?答systemd内部的管理机制没有完全支持Nginx平滑升级第二步升级新版本需要把软件的安装路径指定到旧版本上第三步新旧版本同时运行重点kill -USR2 旧的主进程号第四步查看旧的主进程号并使用kill -WINCH 优雅的关闭的子进程,再关闭旧的主进程kill -WINCH 旧的主进程号kill -QUIT 旧的主进程号-WINCH代表关闭主进程下面的所有worker进程-QUIT代表优雅的退出master进程小结工作中经常需要对旧版本程序进行升级操作如MySQL、Nginx等等但是Nginx本身有两种升级方式。重装升级需要停服然后删原目录重新编译安装平滑升级不需要停服直接在原有基础上进行升级kill-USR2平滑升级kill-WINCH移除当前进程的所有子进程worker进程kill-QUIT代表优雅的关闭master主进程

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑