服务器环境
原来 nginx 的目录为:/webdata/server/nginx
新 nginx 下载目录:/webdata/backup/
备份目录:/webdata/backup/
网站用户及组都为:www
nginx 的进程pid为:14859
查看相关信息
查看版本、编译参数(记下编译参数):
/webdata/server/nginx/sbin/nginx -V
进程数据(记下pid,一般为第一数字):
ps aux | grep nginx
备份旧版本的执行程序
tar -cvf /webdata/backup/nginx.sbin.20150108.tar /webdata/server/nginx/sbin/
下载nginx并解压
wget http://nginx.org/download/nginx-1.7.9.tar.gz
tar -zvxf /webdata/backup/nginx-1.7.9.tar.gz
cd /webdata/backup/nginx-1.7.9
编译新版本,增删模块
编译参数根据旧版本的设置
./configure --user=www --group=www --prefix=/webdata/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_gzip_static_module
make
make install
新版本替换老版本
kill -USR2 14859
#查看进行状态
ll /webdata/server/nginx/logs/nginx*
ps aux|grep nginx
kill -WINCH 14859
一段时间之后,旧的工作进程(worker process)处理了所有已连击的请求后推出,仅由新的工作进程(worker process)来处理请求了。
PS:新版本替换旧版本时建议运行 /webdata/server/nginx/sbin/nginx -t
检测新编译的是否正常。
决定使用新版本还是恢复到旧版本
使用新版本:
kill -QUIT 14859
新的主进程退出后,旧的主进程会移除 .oldbin
后缀,恢复为他的 .pid
文件,这样,一切就都恢复为升级之前了。
如果尝试升级成功,而自己又希望保留新版本时,可发送 QUIT 信号给旧的主进程,使其退出而只留下新的进程运行:kill -QUIT 旧主进程号
。