参考nginx官方文档。 nginx的reload命令用于重新加载配置文件,在进行过程中,服务没有停机时间。
我已经了解到等待已经连接的请求直到完成,并停止接受任何新请求。这个想法很酷,但它如何处理保持连接?因为这些长期连接不会关闭,并且会有连续的请求出现。
答案 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