离线平滑升级nginx
- 进入旧版本nginx启动目录,执行./nginx –V 查看旧版本号及nginx编译参数,configure arguments后为编译参数
- 新版本nginx解压后,执行执行./configure(后面跟旧版本的nginx路径+旧版本所编译的参数)
- 执行make编译(切记勿执行make install安装)
- 进入nginx启动目录
- 备份旧nginx文件,执行:mv nginx nginx.old
- 执行:cp /usr/local/nginx-1.23.1/objs/nginx ./ ,将新版本中的nginx文件(nginx-1.23.1/objs中)复制到旧nginx路径(如/usr/local/nginx中)。
- 执行 ./nginx –t 用新程序加载老文件
- ps aux|grep nginx查看旧nginx进程,如进程号为22693:
- 执行:kill -USR2 22693向主进程发送usr2信号,nginx会启动一个新的版本的master进程和对应的工作进程
- 执行kill -WINCH 22693,旧进程逐步关闭工作进程
- 执行kill -QUIT 22693向旧进程发送退出信号
- 执行./nginx -V查看nginx版本号,已成功升级。
以上为Nginx平滑升级步骤(服务不中断,升级过程较为麻烦,风险高)