首页 > 技术文章 > 线上平滑升级nginx1.12

dukuan 原文

1、下载相关包,需要和之前用到的依赖包保持一致

wget http://nginx.org/download/nginx-1.12.2.tar.gz
wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/08a395c66e42.zip
wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/master.zip

2、解压并备份之前的版本

tar xf nginx-1.12.2.tar.gz 
unzip master.zip 
unzip 08a395c66e42.zip 
cd /application/
cp -rp nginx1.12.1/ nginx.bak

3、查看当前版本使用的编译参数

./nginx -V

configure arguments: --user=nginx --group=nginx --prefix=/application/nginx1.12.1 --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=../nginx-goodies-nginx-sticky-module-ng-08a395c66e42 --add-module=../nginx_upstream_check_module-master

4、编译安装

cd nginx-1.12.2

patch -p1 < ../nginx_upstream_check_module-master/check_1.12.1+.patch

./configure --user=nginx --group=nginx --prefix=/application/nginx1.12.1 --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=../nginx-goodies-nginx-sticky-module-ng-08a395c66e42 --add-module=../nginx_upstream_check_module-master

make  #此步不要make install

5、拷贝新的启动文件

cd /application/nginx/sbin/
mv nginx nginx1_12_1
cp ~/nginx-1.12.2/objs/nginx .

6、检查是否成功,并平滑关闭

./nginx -t

nginx: the configuration file /application/nginx1.12.1/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx1.12.1/conf/nginx.conf test is successful


kill -USR2 `cat /application/nginx/logs/nginx.pid`
kill -QUIT `cat /application/nginx/logs/nginx.pid.oldbin`

7、查看升级后的版本

./nginx -v
nginx version: nginx/1.12.2

推荐阅读