码迷,mamicode.com
首页 > 其他好文 > 详细

nginx平滑升级(线上)

时间:2018-03-25 15:53:52      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:nginx


nginx_ngx_cache_purge第三方模块下载地址,用于清除缓存

http://labs.frickle.com/nginx_ngx_cache_purge/

编译安装参数:--user=www --group=www --add-module=/usr/local/src/ngx_cache_purge-2.0 --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

注意:红色的是添加的第三方还魂模块解压后的目录

1、升级nginx和添加第三方模块一样。都要查看原先的nginx版本及编译参数:

[root@localhost src]# /usr/local/nginx/sbin/nginx  -V

nginx version: nginx/1.12.2

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre=/usr/local/src/pcre-8.39

2、备份nginx

rsync -avz  /usr/local/nginx  /usr/local/nginx.bak --exclude=/usr/local/nginx/logs/*

--exclude 指定不备份的文件或者目录

3、下载nginx的第三方缓存模块(由于目前nginx已经是最新版本,所以没升级)

如果是升级nginx版本。就下载nginx的新版本的包,然后解压。最好也是和之前一样放在/usr/local/src下面。然后进入解压目录,运行上面所查询到的编译参数。添加第三方模块只是在编译的时候加上红色部分而已。如下:

[root@localhost nginx-1.12.2]# ./configure  --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre=/usr/local/src/pcre-8.39 --add-module=/usr/local/src/ngx_cache_purge-2.3

标红的这个是第三方模块解压出来的目录,用--add-module 指定一下即可

4、编译完成之后,再进行make       切记,千万不能make install

[root@localhost nginx-1.12.2]# make

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

5.1、首先备份老的nginx的可执行文件

cp -a /usr/local/nginx/sbin/nginx{,.bak}

5.2、把objs下新的nginx可执行文件拷贝到/usr/local/nginx/sbin下

\cp objs/nginx  /usr/local/nginx/sbin/ -f  

5、测试一下查看是否有问题

[root@localhost nginx-1.12.2]# /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、使用make  upgrade 替换老的nginx进程  进行平滑升级

[root@localhost nginx-1.12.2]# make upgrade

/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

kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

sleep 1

test -f /usr/local/nginx/logs/nginx.pid.oldbin

kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

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

[root@localhost nginx-1.12.2]# /usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.12.2

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre=/usr/local/src/pcre-8.39 --add-module=/usr/local/src/ngx_cache_purge-master

至此,nginx平滑升级完成



nginx平滑升级(线上)

标签:nginx

原文地址:http://blog.51cto.com/12262646/2090865

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!