当 nginx 重新加载时,主进程首先检查语法有效性,然后尝试应用新配置。如果成功,它将启动新的工作进程,并向旧工作进程发送消息,要求它们正常关闭。
主进程何时向旧工作进程发送关闭消息 - 是与创建新工作进程同时进行还是仅在新工作进程启动后发送?
想要了解 nginx 重新加载是否需要更长的时间,在重新加载期间它是否能够处理新的连接?
答案1
这是来自 nginx 文档:
为了让 nginx 重新读取配置文件,应该向主进程发送 HUP 信号。主进程首先检查语法有效性,然后尝试应用新配置,即打开日志文件和新的监听套接字。如果失败,它将回滚更改并继续使用旧配置。如果成功,它将启动新的工作进程,并向旧工作进程发送消息,要求它们正常关闭。旧工作进程关闭监听套接字并继续为旧客户端提供服务。在为所有客户端提供服务后,旧工作进程将关闭。
一个旧工作进程保持活动状态以提供连接服务。如果可以启动新工作进程,则关闭旧工作进程。否则,nginx 将重新启动旧工作进程。
文档中还有该过程的详细示例。
希望这可以帮助!