升级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 查看它的编译参数是什么:
[
|
|
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
|