1、概述
在没有网络的环境中,无法使用包管理器一键升级。最可靠的方式是:在外网下载好新版本的Nginx源码包及其编译依赖,上传到内网服务器,通过源码编译的方式进行升级。
2、升级
2.1 下载源码
wget https://nginx.org/download/nginx-1.30.4.tar.gz
2.2 查看现有编译参数
复制configure arguments后面全部参数
[root@ ~]# nginx -V
nginx version: nginx/1.21.4
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 --with-stream --with-stream_ssl_preread_module
2.3 解压源码
[root@ nginx]# tar -zxvf nginx-1.30.4.tar.gz
[root@ nginx]# cd nginx-1.30.4
2.4 执行 configure(粘贴你原有全部编译参数)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 --with-stream --with-stream_ssl_preread_module
2.5 编译,不要 make install
make
2.6 平滑替换二进制文件
#备份旧二进制
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
#复制新生成程序
cp objs/nginx /usr/local/nginx/sbin/
#热升级,不中断业务
kill -USR2 $(cat /usr/local/nginx/logs/nginx.pid)
2.7 校验版本
nginx -v
nginx -t