nginx平滑重启的方法

发布时间:2020-09-22编辑:脚本学堂
本文介绍下,nginx实现平滑重启的命令与方式,在生产环境中经常要这样做,大家可以参考下。

nginx的重启分成几种类型,这里我们介绍两种,供大家参考。

1,简单型,先关闭进程,修改你的配置后,重启进程。
 

复制代码 代码示例:
kill -QUIT `cat /usr/local/nginx/nginx.pid`
sudo /usr/local/nginx/nginx

2,重新加载配置文件,不重启进程,不会停止处理请求
1)、使用信号加载新的配置
Nginx 支持几个信号,能在它运行时控制其操作。
其中最普通的是 15 ,用来中止运行的进程:
 

复制代码 代码示例:
# ps aux | egrep '(PID|nginx)'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      2213  0.0  0.0   6784  2036 ?        Ss   03:01   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
# kill -15 2213

以上可以平滑改变 nginx 配置的选项。

一个好的习惯是,运行平滑重启下,做好配置文件的测试:
 

复制代码 代码示例:
# nginx -t -c /etc/nginx/nginx.conf
2006/09/16 13:07:10 [info] 15686#0: the configuration file /etc/nginx/nginx.conf syntax is ok
2006/09/16 13:07:10 [info] 15686#0: the configuration file /etc/nginx/nginx.conf was tested successfully
# ps aux | egrep '(PID|nginx)'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      2213  0.0  0.0   6784  2036 ?        Ss   03:01   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
# kill -HUP 2213
 

当 nginx 接收到 HUP 信号,它会尝试先解析配置文件(如果指定配置文件,就使用指定的,否则使用默认的),成功则应用新的配置文件(例如:重新打开日志文件或监听的套接 字)。

然后,nginx 运行新的工作进程并从容关闭旧的工作进程。通知工作进程关闭监听套接字但是继续为当前连接的客户提供服务。
所有客户端的服务完成后,旧的工作进程被关闭。
如果新的配置文件应用失败,nginx 将继续使用旧的配置进行工作。

以上就是nginx平滑重启的二种方式,希望对大家有所帮助。