Nginx 软链接升级流程
Nginx 软链接升级流程
February 24, 2026
创建nginx软链接 #替换 从而让用户实现无感
- 源码编译安装:
- 获取源码:
- wget http://nginx…… -P /root/test/
- 在/root/test/nginx-1.20下解压
- tar -zxvf /root/test/nginx-1.20.tar.gz -C /root/test/nginx_1.20/
- 编译源码:
- 在/root/test/nginx_1.20/nginx1.20 下 ./configure --prefix=/root/test/nginx_1.20
- make
- make install
- 当前目录下可看到configure文件
- 在前一个目录检查:
- /root/test/nginx-1.24/sbin/nginx -v
- 之前已经创建的软链接:
- ln -s /root/test/nginx-1.20 /usr/local/nginx
- 源文件是在源码编译后的目录
- /usr/local/nginx -> /root/test/nginx-1.20
当前软链接
- 确认nginx正在运行:ps -ef | grep nginx
- ls -l /usr/local/nginx
软链接指向
- 备份软链接指向的路径 #防止出错回退
- cp -r /usr/local/nginx /root/test/nginx-backup-1.20
- 物理备份
- 创建新的源码
- 编译安装
- 建立新的软链接
---
- 方案A:
- 直接覆盖原链接(用户不中断)
- ln -sfn /root/test/nginx-1.22 /usr/local/nginx
- -f 如果存在旧链接则覆盖
- -n 处理目标是目录时不进入目录
- 立即指向新版本
- 如果新版本异常 #立即回滚
- ln -sfn /root/test/nginx-1.20_backup /usr/local/nginx
- /usr/local/nginx/sbin/nginx -s reload
- 方案B:
- 创建新链接
- 停nginx/reload后切换
- systemctl stop nginx
- mv /usr/local/nginx /usr/local/nginx_backup
- mv /usr/local/nginx1.22 /usr/local/nginx
- systemctl start nginx