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平滑重启的二种方式,希望对大家有所帮助。