Nginx系列(十四. nginx平滑重启/升级)

一.平滑重启 (version >= 0.7.53)

1.启动

/web/nginx/bin/nginx

2.停止

/web/nginx/bin/nginx -s stop

3.重载

/web/nginx/bin/nginx -s reload

4.测试

/web/nginx/bin/nginx -t

推荐将nginx注册为linux服务更方便控制,参考:
http://blog.csdn.net/qlong_dd/article/details/45342551

二.信号控制

TERM, INT 快速关闭
QUIT 从容关闭
HUP 平滑重启,重新加载配置文件
USR1 重新打开日志文件,在切割日志时用途较大
USR2 平滑升级可执行程序
WINCH 从容关闭工作进程

三.平滑升级

当需要将正在运行中的 nginx 升级、添加/删除服务器模块时,可以在不中断服务的情况下,使用新版本、重编译的 nginx 可执行程序替换旧版本的课执行程序。步骤如下:

(1) 使用新的可执行程序替换旧的可执行程序,对于编译安装的 nginx,可以将新版本编译安装到旧版本的 nginx 安装路径中。替换之前,最好备份一下旧的可执行文件。

(2) 发送以下指令:Command代码 收藏代码

kill -USR2 【旧颁布的Nginx主进程号】

(3) 旧版本 nginx 的主进程将重命名它的 pid 文件为 .oldbin(例如:/usr/local/nginx/logs/nginx.pid.oldbin),然后执行新版本的 nginx 可执行程序,依次启动新的主进程和新的工作进程。

(4) 此时,新、旧版本的 nginx 实例会同时运行,共同处理输入的请求。要逐步停止旧版本的 nginx 实例,你必须发送 WINCH 信号给旧的主进程,然后,它的工作进程就将开始从容关闭:

kill -WINCH 【旧版本的Nginx主进程号】  

(5) 一段时间后,旧的工作进程(worker process)处理了所有已连接的请求后退出,仅由新的工作进程来处理输入的请求了。

(6) 这时候,我们可以决定是使用新版本,还是恢复到旧版本:

kill -HUP 【旧的主进程号】:nginx 将在不重载配置文件的情况下启动它的工作进程 
kill -QUIT 【新的主进程号】:从容关闭其工作进程(worker process) 
kill -TERM 【新的主进程号】:强制退出 
kill 【新的主进程号或旧的主进程号】:如果因为某些原因新的工作进程不能退出,则向其发送 kill 信号 

参考:

http://wiki.nginx.org/CommandLine

http://zachary-guo.iteye.com/blog/1358312

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

我叫龙弟弟

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值