NGINX 平滑重启

534 阅读1分钟

如果改变了 Nginx 的配置文件 (nginx.conf),想要重启 Nginx ,同样可以通过发送系统信号给 Nginx 主进程的方式来进行。不过,重启之前,要确认 Nginx 配置文件 (nginx.conf) 的语法是正确的,否则 Nginx 将不会加载新的配置文件。通过以下命令可以判断 Nginx 配置文件是否正确:

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

如果配置文件不正确,屏幕将会提示配置文件的第几行出错;

如果配置文件正确,屏幕将提示以下两行信息:

# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

 这时候,就可以平滑重启 Nginx 了。

kill -HUP Nginx主进程号

或者

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

pid位置可以在配置文件中查找

当 Nginx 接收到 HUP 信号时,它会尝试先解析配置文件 (如果指定配置文件,就使用指定的,否则使用默认的),如果成功,就应用新的配置文件 ( 例如,重新打开日志文件或监听的套接字 )。之后, Nginx 运行新的工作进程并从容关闭旧的工作进程。通知工作进程关闭监听套接字,但是继续为当前连接的客户提供服务。所有客户端的服务完成后,旧的工作进程被关闭。如果新的配置文件应用失败,Nginx 将继续使用旧的配置进行工作。

转载来源:my.oschina.net/u/923772/bl…

谢谢作者辛苦编辑