nginx 的升级(冷升级/热升级)
2026/8/3 12:10:18 网站建设 项目流程

一、前置准备

1.1 查看当前版本参数

# 查看当前版本 nginx -V

1.2 编译升级版本

# 切换到安装包路径 cd /opt # 解包 tar zxvf nginx-1.22.0.tar.gz # 进入 nginx-1.22.0 目录 cd nginx-1.22.0 # 配置 nginx-1.22.0 ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module \ --with-http_ssl_module # 编译(不要安装 make install) make

1.3 备份

# 备份旧文件 mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old

二、停机冷升级

2.1 停止 nginx

# 停止服务 systemctl stop nginx

2.2 替换二进制文件

# 替换二进制文件 cp objs/nginx /usr/local/nginx/sbin/nginx

2.3 启动服务

# 启动服务 systemctl start nginx

2.4 查看版本

# 查看版本信息 nginx -V

三、平滑热升级

3.1 替换二进制文件

# 替换二进制文件 cp objs/nginx /usr/local/nginx/sbin/nginx

3.2发送信号

# 获取当前进程号 ps aux | grep nginx | grep -v grep # 向旧进程发送 USR2 信号 kill -USR2 841 # -USR2:告诉旧主进程启动新版本的主进程(新老并存) # 查看新进程是否启动 ps aux | grep nginx | grep -v grep

3.3 关闭旧 worker 进程

# 关闭旧 worker 进程 kill -winch 841 # winch:告诉旧主进程关闭它的所有 worker 进程(但旧主进程还在) # 查看进程,应该只有新的 worker 在运行 ps aux | grep nginx | grep -v grep

3.4 验证新版本运行是否正常

# 测试访问 curl -I http://localhost # 观察日志 tail -f /usr/local/nginx/logs/error.log

3.5 完全切换到新版本

# 彻底关闭旧主进程 kill -quit 841

3.6 查看版本信息

# 查看版本信息 nginx -V

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询