1,查看nginx现在的版本:
[root@dir2 conf]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.6.3
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_sub_module --with-http_ssl_module --with-pcre
注意上面红色部分,这是nginx编译安装时的一些参数,这个很重要,一会再次编译新nginx的时候需要用到这些参数。
2,下载并编译安装nginx-1.8.1
[root@dir2 ~]# ls
nginx-1.8.1.tar.gz
[root@dir2 ~]# tar xf nginx-1.8.1.tar.gz
[root@dir2 ~]# cd nginx-1.8.1
[root@dir2 nginx-1.8.1]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
[root@dir2 nginx-1.8.1]# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_sub_module --with-http_ssl_module --with-pcre
[root@dir2 nginx-1.8.1]#make
3. 执行完后,这里不用在 make install 了,接下来重名/sbin/nginx为nginx.old
[root@dir2 nginx-1.8.1]#mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
4. 复制编译后objs目录下的nginx文件到nginx的安装目录sbin/下
[root@dir2 nginx-1.8.1]# cp objs/nginx /usr/local/nginx/sbin/
5. 测试一下新复制过来文件生效情况:
[root@dir2 nginx-1.8.1]# /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
6. 让nginx把nginx.pid文件修改成nginx.pid.oldbin,随即启动nginx,实现不间断
[root@dir2 nginx-1.8.1]# kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
[root@dir2 nginx-1.8.1]# kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
7. 升级完成了,最后在看一下升级后的版本
[root@dir2 nginx-1.8.1]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.8.1
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-http_stub_status_module --with-http_sub_module --with-http_ssl_module --with-pcre
再次查看nginx的版本,已经成功升级到nginx-1.8.1了。