nginx 平滑升级 怎么使用kill 启动新的主进程
时间: 2024-10-03 15:02:07 浏览: 32
Nginx1.8.0版本平滑升级新版本1.9.7
在 Nginx 的平滑升级过程中,通常采用无侵入式的方式,即新版本的 Nginx 作为副本来运行,当旧版 Nginx 完成配置并负载均衡切换到新版后,再停止旧版进程。使用 `kill` 和启动新的主进程来实现平滑升级的一般步骤如下:
1. **备份当前运行的 Nginx**:确保服务数据的安全,先创建备份。
2. **启动新版本 Nginx 作为副版**:
- 先将新版本 Nginx 设置为静默启动模式(例如添加 `-s single_core` 参数),使其只监听非标准端口,不接受外部请求。
-c /path/to/new/nginx.conf -s single_core
```
3. **检查负载情况**:
确保新 Nginx 已经正常工作并且接收到流量,可以使用 `netstat` 或 `ss` 查看连接状态。
4. **更新配置**:
在旧版 Nginx 配置文件中设置新的服务器块,指向新 Nginx 的地址,并逐渐增加权重,让客户端流量逐步转移到新服务器。
5. **监控负载均衡**:
使用工具如 `nginxadm`、`heartbeat` 或者直接通过系统监控工具确认负载均衡过渡。
6. **更新旧版配置**:
当旧版的负载降低到可以承受的程度时,修改其配置文件,取消对新 Nginx 的引用,并关闭不必要的端口。
7. **停止旧版 Nginx**:
确认旧版 Nginx 的流量已经完全转移到新版本后,安全地杀死旧版本进程:
```
sudo kill -QUIT $(cat /var/run/nginx.pid)
```
或者如果需要更干净的终止,使用:
```
sudo killall -QUIT nginx
```
8. **清理资源**:
删除旧版本 Nginx 的pid文件以及日志文件等。
9. **验证升级成功**:
检查新 Nginx 是否成为主进程,确认所有配置和功能都能正常运行。
阅读全文