nginx 平滑重启与升级的实现方法
作者:
如果改变了Nginx的配置文件(nginx.conf),想重启Nginx,同样可以通过发送系统信号给Nginx主进程的方式来进行.不过,重启之前,要确认Nginx配置文件(nginx.conf)的语法是正确的,否则Nginx将不会加载新的配置文件。通过以下命令可以判断Nginx配置文件是否正确:
/usr/local/webserver/nginx/sbin/nginx -t -c
/usr/local/webserver/nginx/conf/nginx.conf
如果配置文件不正确,屏幕将会提示配置文件的第几行出错:
[emerg]:unknowndirective"abc"inlusrllocaUwebserverlnginxjconflnginx.conf:55
Configurationfile/usr/local/webserver/nginx/conf/nginx·conf test failed
如果配置文件正确,屏幕将提示以下两行信息:
The configuration file/usr/loca/webserver/nginx/conf/nginx.conf syntax is ok
Configuration file/usr/local/webserver/nginx/conf/nginx.conf test is successful
这时候,就可以平滑重启Nginx了。
/usr/local/www/nginx/sbin/nginx -xs reloadx
或:
killx -HUP `cat /usr/local/www/nginx/logs/nginx.pidx`
下面是一些补充:
平滑重启 kill -HUP `cat /usr/local/www/nginx/logs/nginx.pid`
平滑升级nginx
cd /yujialin
wget http://nginx.org/download/nginx-1.0.6.tar.gz
tar zxvf nginx-1.0.6.tar.gz
cd nginx-1.0.6
/usr/local/www/nginx/sbin/nginx -V
nginx: nginx version: nginx/1.0.4
nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-50)
nginx: configure arguments: --prefix=/usr/local/www/nginx --with-pcre=/yujialin/pcre-8.12 --with-http_stub_status_module --with-http_gzip_static_module
这步是要得到编译参数
./configure --prefix=/usr/local/www/nginx --with-pcre=/yujialin/pcre-8.12 --with-http_stub_status_module --with-http_gzip_static_module
用上面这段编译
然后make,千万别make install
make完了 在objs目录下就多了个nginx,这个就是新版本的程序了
mv /usr/local/www/nginx/sbin/nginx /usr/local/www/nginx/sbin/nginx-20110906
cp objs/nginx /usr/local/www/nginx/sbin/nginx
/usr/local/www/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successfu
make upgrade 执行升级
执行完后 /usr/local/nginx/sbin/nginx -V
nginx: nginx version: nginx/1.0.6
nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-50)
nginx: configure arguments: --prefix=/usr/local/www/nginx --with-pcre=/yujialin/pcre-8.12 --with-http_stub_status_module --with-http_gzip_static_module