首先查看现在环境nginx的版本为1.8.0 编译的参数只指定了安装路径;
1
2
3
4
|
[root@localhost sbin]
# ./nginx -V
nginx version: nginx
/1
.8.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC)
configure arguments: --prefix=
/usr/local/nginx
|
平滑升级步骤如下:
下载nginx1.9.7版本,解压并进入解压后的目录
1
2
3
4
|
[root@localhost ~]
# wget -P /usr/local/src/ http://nginx.org/download/nginx-1.9.7.tar.gz
[root@localhost ~]
# cd /usr/local/src/
[root@localhost src]
# tar -zxvf nginx-1.9.7.tar.gz
[root@localhost src]
# cd nginx-1.9.7
|
编译安装之前查看nginx进程ID信息:
1
2
3
4
|
[root@localhost nginx-1.9.7]
# ps -ef |grep nginx
root 894 1 0 16:06 ? 00:00:00 nginx: master process
/usr/local/nginx/sbin/nginx
-c
/usr/local/nginx/conf/nginx
.conf
nobody 896 894 0 16:06 ? 00:00:00 nginx: worker process
nobody 897 894 0 16:06 ? 00:00:00 nginx: worker process
|
编译安装:指定用户www 支持ssl 支持pcre 支持状态查询 支持静态压缩模块;
1
|
[root@localhost nginx-1.9.7]
# ./configure --user=www --group=www --prefix=/usr/local/nginx/ --with-pcre --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
|
编译安装后可以echo $?查看是否成功,成功后只需要执行make,不需要make install;
1
|
[root@localhost nginx-1.9.7]
# make
|
平滑升级,先移走现有的nginx二进制文件
1
|
[root@localhost nginx-1.9.7]
# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
|
拷贝新生成的nginx二进制文件到指定目录
1
|
[root@localhost nginx-1.9.7]
# cp objs/nginx /usr/local/nginx/sbin/
|
执行升级命令
1
2
3
4
5
6
7
8
|
[root@localhost nginx-1.9.7]
# make upgrade
/usr/local/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 successful
kill
-USR2 `
cat
/usr/local/nginx//logs/nginx
.pid`
sleep
1
test
-f
/usr/local/nginx//logs/nginx
.pid.oldbin
kill
-QUIT `
cat
/usr/local/nginx//logs/nginx
.pid.oldbin`
|
查看版本,发现已经是1.9.7版本,编译的参数也存在;
1
2
3
4
5
6
|
[root@localhost nginx-1.9.7]
# /usr/local/nginx/sbin/nginx -V
nginx version: nginx
/1
.9.7
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=
/usr/local/nginx/
--with-pcre --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
|
创建www用户
1
|
[root@localhost nginx-1.9.7]
# useradd -s /sbin/nologin -M www
|
查看nginx进程 PID已经更改
1
2
3
4
|
[root@localhost sbin]
# ps -ef |grep nginx
root 3814 1 0 16:23 ? 00:00:00 nginx: master process
/usr/local/nginx/sbin/nginx
-c
/usr/local/nginx/conf/nginx
.conf
nobody 3815 3814 0 16:23 ? 00:00:00 nginx: worker process
nobody 3816 3814 0 16:23 ? 00:00:00 nginx: worker process
|
修改nginx.conf配置文件,更改用户和用户组为www用户,保存退出,重启nginx服务;
1
2
3
4
|
[root@localhost conf]
# ps -ef |grep nginx
root 3814 1 0 16:23 ? 00:00:00 nginx: master process
/usr/local/nginx/sbin/nginx
-c
/usr/local/nginx/conf/nginx
.conf
www 4200 3814 0 16:48 ? 00:00:00 nginx: worker process
www 4201 3814 0 16:48 ? 00:00:00 nginx: worker process
|
nginx版本平滑升级结束;
本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1744062,如需转载请自行联系原作者