我们想知道以下问题:
想象通过编译新版本并执行 make install 来升级 nginx。
目标都是相同的,本质上是旧版本被覆盖(我们通常从 nginx -V 中提取配置字符串)。
执行 nginx -s reload 是否足以强制开始使用新版本的 nginx?还是我们必须终止该进程并重新启动它?
我们要求这样做是为了尽可能地减少停机时间。我知道我知道,快速 killall nginx ; nginx.... 会导致一秒钟的停机时间...但如果可以避免,为什么还要有那么一秒钟的停机时间。
谢谢。
答案1
nginx -s reload
不足以升级到新的二进制文件。请阅读此条目在 wiki 上查看升级到新二进制文件需要发送的一系列信号。或者,由于您已经从源代码安装,因此您可以make upgrade
运行一个目标,make install
它会为您发送信号。
答案2
-s 选项重新加载的设计正是根据您的需要。