> CentOS > CentOS教程 >

CentOS下平滑无缝升级Nginx到最新版本

1、如同安装nginx第三方模块一样,需要查看原来安装的nginx的版本以及编译的参数

[root@localhost ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.7.8
built by gcc 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) 
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=/root/ngx_cache_purge-2.2

2、下载想要升级nginx的版本

wget -c http://nginx.org/download/nginx-1.7.9.tar.gz

3、解压进入目录开始运行上面所查询到的编译参数

tar zxvf nginx-1.7.9.tar.gz
cd /root/nginx-1.7.9
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=/root/ngx_cache_purge-2.2

4、然后make,但不要make install,切记! 

可能会有错误提示:

cc1: all warnings being treated as errors
make[1]: *** [objs/addon/ngx_cache_purge-2.2/ngx_cache_purge_module.o] 错误 1
make[1]: 离开目录“/root/nginx-1.7.9”
make: *** [build] 错误 2

出现这种错误提示的原因,是我的这个nginx是最新的,而ngx_cache_purge模块版本是旧的。建议使用最新的版本。如果没有第三方模块,一般情况下,直接升级nginx是不会报错误提示的。

下载解压后,修改编译参数中的:–add-module=/root/ngx_cache_purge-2.3

wget -c http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
tar zxvf ngx_cache_purge-2.3.tar.gz

重新运行这些参数顺利通过后,make

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=/root/ngx_cache_purge-2.3

5、make 编译完,在objs目录下有一个nginx执行文件

6、备份下原来老的nginx文件

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

7、在把新objs下的nginx cp到sbin下

cp objs/nginx /usr/local/nginx/sbin/nginx

8、执行 /usr/local/nginx/sbin/nginx -t 测试下,显示没有问题。

9、使用 make upgrade 替换老的nginx进程

10、再次执行:/usr/local/nginx/sbin/nginx -V 将会显示新的nginx的版本及编译的参数。


 



(责任编辑:IT)