2012-10-31 93 views
1

我有一个nginx现在在一个实时网站上运行,但我需要重新编译它来添加一些额外的功能。我使用的命令是。重新编译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 

回答

2

你是对的,让刚做链接和编译,而make install的将系统

0

你并不需要有一个停机时间上安装它。您编译并替换可执行文件。 然后你触发nginx产生一个新的主人。 在此过程解释: 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 
+0

什么时候在'make clean',''。/ configure','make'生命周期中发生? –

+0

@MajorProductionsLLC'make install'后。据我了解,旧的主进程只能在RAM中生存,因为在生成新的主进程之前可执行文件被替换。一旦“旧版本主站”停止,替换过程就完成了,直到重新编译之后才能撤消。 – unNamed