nginx如何重新加载?为什么它是零停机时间

时间:2017-03-29 08:34:22

标签: nginx

参考nginx官方文档。 nginx的reload命令用于重新加载配置文件,在进行过程中,服务没有停机时间。

我已经了解到等待已经连接的请求直到完成,并停止接受任何新请求。这个想法很酷,但它如何处理保持连接?因为这些长期连接不会关闭,并且会有连续的请求出现。

1 个答案:

答案 0 :(得分:7)

以下是摘要:

http://nginx.org/en/docs/control.html

  

主进程首先检查语法有效性,然后尝试   应用新配置。如果成功,它将启动新工作人员   进程,并向请求它们的旧工作进程发送消息   优雅地关闭。

这意味着它会让旧进程处理未关闭的连接,同时让新进程根据更新的配置工作。 从这个角度来看,与keep-alive的连接与其他未关闭的连接没有什么不同。

在1.11.11之前的版本中,这样的“旧”进程可能无限期地挂起(根据@Alexey,虽然没有检查过),从1.11.11开始,有一个控制它的配置设置 http://nginx.org/en/docs/ngx_core_module.html#worker_shutdown_timeout