1) 修改配置文件后,平滑重启,(此处认为配置文件,pid 文件均在默认位置,即 /etc/nginx/nginx.conf 和 /run/nginx.pid)
# 测试配置文件语法无误, $ sudo nginx -t # 然后, $ sudo kill -SIGHUP `cat /run/nginx.pid` # 或, $ sudo kill -1 `cat /run/nginx.pid`
2) 从容关闭 nginx 服务
$ sudo kill -SIGQUIT `cat /run/nginx.pid` 或, $ sudo kill -3 `cat /run/nginx.pid`
3)快速关闭 nginx 服务
$ sudo kill -SIGTERM `cat /run/nginx.pid` 或, $ sudo kill -SIGINT `cat /run/nginx.pid`
4) 平滑升级
- 首先编译安装新的 nginx, 可直接覆盖旧版本的安装路径上
- 同时运行新旧版本
$ sudo kill -SIGUSR2 `cat /run/nginx.pid`
此时,新旧版本同时运行,新版本的 pid 文件为 /run/nginx.pid,旧版本的 pid 文件被重命名未 /run/nginx.pid.oldbin。
要逐步停止旧版本,需要发送 WINCH 信号给旧的主进程,
$ sudo kill -SIGWINCH 旧版本的主进程号
一段时间后,旧版本的所有工作进程 worker process 运行结束全部退出,仅由新版本的工作进程 worker process 来处理请求。
此时可以决定使用新版本还是恢复到旧版本。
* 如果要使用新版本,则关闭旧版本的主进程,
$ sudo kill -SIGQUIT 旧版本的主进程号
* 如果要恢复到旧版本,则先启动旧版本的工作进程,
$ sudo kill -SIGHUP 旧版本的主进程号
然后从容关闭新版本的主进程,
$ sudo kill -SIGQUIT 新版本的主进程号
当新版本关闭后,旧的主进程会移除 /run/nginx.pid.oldbin,恢复它的 pid 文件 /run/nginx.pid。
(完)
原文:https://www.cnblogs.com/gaowengang/p/14644201.html