nginx平滑升级
平滑升级步骤:
1.准备升级包或功能包
2.获取升级前版本的编译参数 nginx -V
3.解压新版本,使用configure进行配置,配置时加上审计前版本的编译参数,然后添加新功能模块
4.将新功能或新版本进行编译(禁止进行make install安装)
5.使用新程序和旧配置文件启动新版本(先关闭停止nginx运行)
6.如果第五步成功则备份旧版本的程序并同时复制新版本程序覆盖旧版本并重启
7.验证
//获取现有的程序编译的参数 -V
[root@master ~]# nginx -V
nginx version: nginx/1.20.2
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC)
built with OpenSSL 1.1.1k FIPS 25 Mar 2021
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log
//下载一个新版本,并解压
[root@master ~]# wget http://nginx.org/download/nginx-1.22.0.tar.gz
[root@master ~]# tar xf nginx-1.22.0.tar.gz
[root@master ~]# ls
anaconda-ks.cfg nginx-1.20.2 nginx-1.22.0
initial-setup-ks.cfg nginx-1.20.2.tar.gz nginx-1.22.0.tar.gz
//将新功能或新版本进行编译
[root@master nginx-1.22.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-debug \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_image_filter_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log
[root@master nginx-1.22.0]# make
[root@master nginx-1.22.0]# ll objs/nginx /usr/local/nginx/sbin/nginx
-rwxr-xr-x 1 root root 6314552 Sep 2 11:10 /usr/local/nginx/sbin/nginx
-rwxr-xr-x 1 root root 6192528 Sep 4 17:01 objs/nginx
[root@master nginx-1.22.0]# make install
//安装完之后,nginx -V发现nginx的版本已经更新
[root@master nginx-1.22.0]# nginx -V
nginx version: nginx/1.22.0
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC)
built with OpenSSL 1.1.1k FIPS 25 Mar 2021
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log
日志也能正常使用,可以说版本平滑升级成功了
[root@master nginx-1.22.0]# cat /var/log/nginx/access.log
192.168.170.1 - - [31/Aug/2022:18:42:13 +0800] "GET / HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70" "-"
192.168.170.1 - - [31/Aug/2022:18:42:14 +0800] "GET /favicon.ico HTTP/1.1" 404 3971 "http://192.168.170.135/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70" "-"
192.168.170.1 - - [31/Aug/2022:19:30:21 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70" "-"
web页面

添加新功能
//获取现有的版本参数
[root@master ~]# nginx -V
nginx version: nginx/1.22.0
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC)
built with OpenSSL 1.1.1k FIPS 25 Mar 2021
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log
[root@master ~]# unzip nginx-push-stream-module-master.zip
[root@master ~]# ls
anaconda-ks.cfg nginx-1.20.2.tar.gz nginx-push-stream-module-master
initial-setup-ks.cfg nginx-1.22.0 nginx-push-stream-module-master.zip
nginx-1.20.2 nginx-1.22.0.tar.gz
[root@master nginx-1.22.0]# ll objs/nginx /usr/local/nginx/sbin/nginx
-rwxr-xr-x 1 root root 6192528 Sep 4 17:06 /usr/local/nginx/sbin/nginx
-rwxr-xr-x 1 root root 6192528 Sep 5 10:32 objs/nginx
[root@master nginx-1.22.0]# ll objs/nginx /usr/local/nginx/sbin/nginx
-rwxr-xr-x 1 root root 6192528 Sep 4 17:06 /usr/local/nginx/sbin/nginx
-rwxr-xr-x 1 root root 6192528 Sep 5 10:32 objs/nginx
[root@master nginx-1.22.0]# cp /usr/local/nginx/sbin/nginx /opt/
[root@master nginx-1.22.0]# ls /opt/
nginx
[root@master nginx-1.22.0]# nginx -s stop;objs/nginx -c /usr/local/nginx/conf/nginx.conf
[root@master nginx-1.22.0]# ps -ef | grep nginx
root 109058 1 0 10:33 ? 00:00:00 nginx: master process objs/nginx -c /usr/local/nginx/conf/nginx.conf
nginx 109059 109058 0 10:33 ? 00:00:00 nginx: worker process
root 109795 1440 0 10:33 pts/0 00:00:00 grep --color=auto nginx
nginx version: nginx/1.22.0
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC)
built with OpenSSL 1.1.1k FIPS 25 Mar 2021
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log

浙公网安备 33010602011771号