升级nginx版本至1.30.1版本的自动脚本
·
Nginx 平滑升级脚本 v2.1 简介
一键把线上 Nginx 从低版本升级到 1.30.1,全程不停机。脚本自动读取当前 nginx 的编译参数,下载同版本源码重新编译后,通过 USR2/WINCH/QUIT 信号完成新旧 master 切换,已有连接在旧 worker 上跑完才断,新请求直接走新进程,业务零感知。
核心思路:只换二进制和动态模块的 .so 文件,配置文件不动,不 make install,不破坏原有环境。
脚本会自动识别操作系统(Ubuntu、Debian、Alibaba Cloud Linux 3、CentOS、RHEL、Fedora 都认),走对应的包管理器装编译依赖。编译参数里如果带了当前系统上不存在的 -specs= 文件路径(典型场景:从另一台 RHEL 机器带过来的 rpm hardened 编译参数),脚本会自动检测并剥离,装不上就先装 redhat-rpm-config 补文件,补不上就删掉这个参数继续走,不会卡死在 configure 阶段。
动态模块也一起处理——检测配置里 load_module 引用了哪些 .so,编译完对应替换,版本对不上直接报错回滚。
全程有日志、有备份(二进制、配置、模块目录全打包),升级完了还能对比配置文件有没有被意外改动。搞砸了随时 --rollback 一键恢复,从备份里把旧二进制、旧模块、旧配置全捞回来,重新启动回到老版本。
更多推荐

所有评论(0)