1

我现在在一个实时网站上运行 nginx,但我需要重新编译它以添加一些额外的功能。我使用的命令是。

make clean
./configure -- BLA BLA BLA
make
make install

只是为了确认,我不需要停止 nginx,直到我运行' make install'对吗?“make”命令花费的时间最长,我只想 100% 确定我不需要尽快停止 Nginx。

所以要确认一下,这实际上意味着只有一两秒钟的停机时间。

make clean
./configure -- BLA BLA BLA
make
/etc/init.d/nginx stop
make install
/etc/init.d/nginx start
4

2 回答 2

2

你是对的,make 只是做链接和编译,而 make install 将它安装在系统上

于 2012-10-31T10:37:06.717 回答
0

您不需要停机。您编译并替换可执行文件。然后你触发 nginx 生成一个新的 master。该过程在这里解释:http: //nginx.org/en/docs/control.html#upgrade

New Version - Master - start:
kill -s USR2 `cat /var/run/nginx.pid`

Old Version - Worker - stop:
kill -s WINCH `cat /var/run/nginx.pid.oldbin`
Old Version - Master - stop:
kill -s QUIT `cat /var/run/nginx.pid.oldbin`

如果你想回到旧版本:

Old Version - Worker - start:
kill -s HUP `cat /var/run/nginx.pid.oldbin`
New Version - Master - stop:
kill -s QUIT `cat /var/run/nginx.pid`

如果你得到一个文件不能被替换的错误,你的编译选项是错误的。

--sbin-path=/usr/sbin/nginx
于 2016-03-10T12:31:31.947 回答