升级Nginx1.14.1以上版本

一、编译Nginx

①、下载Nginx最新版

目前Nginx最新版是今年11月份发布的 1.9.7 版本,反正1.9+是没有稳定版,所以干脆弄个最新版:

 
cd /usr/local/src
 
wget http://nginx.org/download/nginx-1.14.1.tar.gz

②、编译Nginx

在已有环境下编译Nginx,一般做法是先取得目前运行的Nginx的运行参数,然后在这个参数的基础上加上本次编译想新增的参数即可。所以,我们先执行 nginx -V 查看它的编译参数是什么:

 
[root@MyAlyServer src]# /usr/local/nginx/sbin/nginx -V
 
Tengine version: Tengine/2.1.0 (nginx/1.6.2)
 
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC)
 
TLS SNI support enabled
 
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --add-module=../ngx_cache_purge-2.3

可以看到张戈博客目前用的是1.6.2版本,当然也是淘宝定制过的Tengine。

如果你发现参数里面也存在 –add-module=../xxx 这种使用相对路径的参数,就得注意了。你重新编译的时候得保证新的Nginx编译文件夹的相对路径存在对应的模块,否则请重新指定一个正确的路径,比如上面代码中出现的 ngx_cache_purge-2.3,否则会提示找不到路径啦!

既然知道了老的Nginx的编译参数,那么直接按照下面操作,解压、编译、平滑升级搞定Nginx1.9x:

 
#解压
 
tar zxvf nginx-1.14.1.tar.gz
   
 
#进入源码目录
 
cd nginx-1.14.1
   
 
#编译,在已有Nginx编译参数前面加上 ./configure ,并在最后加一个激活 http 2.0 模块的参数
 
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --add-module=../ngx_cache_purge-2.3 --with-http_v2_module
   
 
#编译完成,如果没有报错(可以运行一下 echo $? 查看输出是不是 0 ),直接make,这里会需要几分钟左右。
 
make
   
 
#平滑升级,先移走现有的nginx 二进制文件
 
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
   
 
#然后复制新生成的Nginx二进制文件到sbin目录
 
cp objs/nginx /usr/local/nginx/sbin
   
 
#最后执行升级命令
 
make upgrade
   
 
#若有报错可以尝试使用如下命令重启下Nginx,当然如果是配置错误那就得另外检查了
 
killall -9 nginx && /usr/local/nginx/sbin/nginx
原文地址:https://www.cnblogs.com/kinwing/p/11132142.html