平滑升级nginx

## 先查看老版本 nginx 的编译参数,我这里没有。
[root@centos-linux home]# cd /usr/local/nginx/sbin/

[root@centos-linux sbin]# ./nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
configure arguments: --with-http_v2_module --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-http_realip_module

## 下载最新的稳定版本
[root@centos-linux sbin]# wget http://nginx.org/download/nginx-1.18.0.tar.gz
[root@centos-linux home]# tar -zxvf nginx-1.18.0.tar.gz

## 进入 nginx 源码目录,按照配置参数 configure make,注意这里不要 make install
[root@centos-linux home]# cd nginx-1.18.0
[root@centos-linux nginx-1.18.0]#  ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx/ --with-http_v2_module --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-http_realip_module
[root@centos-linux nginx-1.18.0]# make

## 备份原来的 nginx 二进制文件
[root@centos-linux nginx-1.18.0]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx16.old
## 将刚刚编译的新的 nginx 二进制文件放到 sbin 目录下
[root@centos-linux nginx-1.18.0]# cp objs/nginx /usr/local/nginx/sbin/

[root@centos-linux nginx-1.18.0]# cd /usr/local/nginx/sbin/
[root@centos-linux sbin]# ls
nginx  nginx16.old

## 找到原来的 nginx 进程号,发送 USR2 命令
[root@centos-linux sbin]# cd ../logs/
## 此时旧的Nginx主进程将会把自己的进程文件改名为.oldbin,然后执行新版 Nginx
[root@centos-linux logs]# kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

## 关闭原来的 nginx 进程
[root@centos-linux logs]# ls
[root@centos-linux logs]# access.log  error.log  nginx.pid  nginx.pid.oldbin
[root@centos-linux logs]# kill -QUIT `cat nginx.pid.oldbin`

## 查看新版本的 nginx 信息
[root@centos-linux nginx-1.18.0]# cd /usr/local/nginx/sbin/
[root@centos-linux sbin]# ./nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --with-http_v2_module --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-http_realip_module

附录:
安装 nginx 需要的库

[root@centos-linux home]# yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
posted @ 2020-05-18 20:40  LiuChengloong  阅读(100)  评论(0编辑  收藏  举报