玖叶教程网

前端编程开发入门

Nginx 热升级(nginx热升级长连接)


  • 查看当前nginx 安装路径

[root@localhost sbin]# whereis nginx

  • 查看当前nginx 版本号

  • 官网下载版本

https://nginx.org/en/download.html

本手册从1.24.0 升级到1.25.4 版本

  • Tar 包上传到服务器并解压缩文件

  • 解压nginx 安装包

tar xf nginx-1.25.4.tar.gz

cd nginx-1.25.4

  • 编译新版本

查看老版本参数---[root@localhost nginx-1.25.4]# /usr/sbin/nginx -V

其次 cd /opt/nginx-1.25.4 进入解压缩目录

./configure --prefix= 填写红线中看到的完整路径

上图中红线部分是重点:/usr/sbin/nginx -V 查看到路径是什么就填写完成路径

[root@localhost nginx-1.25.4]# echo $? ## 判断编译是否成功

0

  • 编译

执行make 参数,不执行make install ## 不能执行make install 否则会覆盖文件

  • 查看nginx 配置文件

如果发现 objs 目录下没有nginx 目录文件,请执行make 参数,本次已经踩坑。

  • 备份现有配置文件

mv /usr/sbin/nginx /usr/sbin/nginx_$(date +%F) ####当前配置文件备份

当前 nginx_2023-03-12 就是备份文件

进 /opt/nginx-1.25.4/objs 复制nginx 目录去当前nginx 安装目录/usr/sbin/

  • 热升级

Cd /opt/nginx-1.25.4 ### 进入解压缩目录

make upgrade

[root@localhost objs]# /usr/sbin/nginx -t ### 验证当前启动文件正确性

图片中有 http2 warn

Vi /etc/nginx/nginx.conf 配置文件

去掉图片中的http2 参数即可

  • 验证完整性

出现 successful 说明正常

  • 查看当前 nginx 进程

一个master 主进程 4 个worker 子进程,主进程号为26062,此处显示的还是老版本 nginx 进程号

  • 升级老版本nginx

[root@localhost nginx-1.25.4]# kill -USR2 26062 ###平滑升级 USR2 请不要写错

执行后查看 nginx 进程号会出现2 个 master 进程,第2个master 进程起来后说明新版本nginx 已经起来

  • 关闭老版本nginx 进程

此处也可以执行 kill -9 强制给老进程 kill ,也可以保留两个主进程,新版本有问题可以执行回退操作

  • 版本回退

执行HUP 指令 唤醒老版本 kill 新版本进程


  • 版本验证

  • 结束语: 以上操作升级 nginx 用户无感,业务不需要中断。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言