拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Nginx 平滑升级与回滚实战:从 1.28.1 到 1.30.4 的无缝迁移指南

Nginx的平滑升级及回滚1.下载高版本的软件[rootNginx ~]# wget https://nginx.org/download/nginx-1.29.4.tar.gz2.对于新版本的软件进行源码编译并进行平滑升级#编译nginx隐藏版本[rootNginx ~]# tar zxf nginx-1.30.4.tar.gz[rootNginx ~]# cd nginx-1.30.4/src/core/[rootNginx core]# vim nginx.h#define nginx_version 1029004#define NGINX_VERSION #define NGINX_VER TIMINGLEE/ NGINX_VERSION#文件编辑完成后进行源码编译即可[rootNginx core]# cd ../../[rootNginx nginx-1.30.4]# ./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module[rootNginx nginx-1.30.4]# make[rootNginx nginx-1.30.4]# cd objs/[rootNginx objs]# lsautoconf.err nginx ngx_auto_config.h ngx_modules.c src Makefile nginx.8 ngx_auto_headers.h ngx_modules.o#Makefile#./configure 生成的编译规则文件make 命令就是读取这个文件完成编译#nginx#编译完成的 Nginx 二进制可执行程序#make install 本质就是把这个 objs/nginx 拷贝到 /usr/local/nginx/sbin/nginx#nginx.8:#man 手册源码make install 会复制到 man 帮助目录#autoconf.err#configure 阶段报错日志#ngx_auto_config.h#C 头文件 ./configure根据你的编译参数自动生成 里面记录开启了哪些模块、路径、宏定义#ngx_auto_headers.h#检测系统头文件生成的宏判断系统有没有某些函数、库#ngx_modules.c#根据./configure带的--with‑*模块参数自动生成#ngx_modules.o#ngx_modules.c 编译出来的目标文件#src/#编译过程产生的一堆.o目标文件C 源码编译后的中间文件。所有模块编译的临时产物调试排错用平时不用管[rootNginx objs]# cd /usr/local/nginx/sbin/[rootNginx sbin]# lsnginx[rootNginx sbin]# cp -p nginx nginx.old[rootNginx sbin]# \cp -f /mnt/app/nginx-1.30.4/objs/nginx /usr/local/nginx/sbin/nginx[rootNginx sbin]# ls /usr/local/nginx/logs/access.log error.log nginx.pid[rootNginx sbin]# ps aux | grep nginxroot16430.00.1146882360? Ss 09:550:00 nginx: master process /usr/local/nginx/sbin/nginx nginx16440.00.2148883896? S 09:550:00 nginx: worker process[rootNginx sbin]# kill -USR2 1643 #nginx master进程id[rootNginx sbin]# ps aux | grep nginxroot16430.00.1146882744? Ss 09:550:00 nginx: master process /usr/local/nginx/sbin/nginx nginx16440.00.2148883896? S 09:550:00 nginx: worker process root49190.00.4147167936? S10:240:00 nginx: master process /usr/local/nginx/sbin/nginx nginx49210.00.2149164156? S10:240:00 nginx: worker process root49230.00.166362176pts/0 S10:250:00grep--colorauto nginx[rootNginx sbin]# ls /usr/local/nginx/logs/access.log error.log nginx.pid nginx.pid.oldbin#测试效果[rootNginx sbin]# nginx -Vnginx version: TIMINGLEE/ built by gcc11.5.020240719(Red Hat11.5.0-5)(GCC)built with OpenSSL3.2.24Jun2024TLS SNI support enabled configure arguments:--prefix/usr/local/nginx--usernginx--groupnginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module#回收旧版本子进程[rootNginx sbin]# ps aux | grep nginxroot16430.00.1146882744? Ss 09:550:00 nginx: master process /usr/local/nginx/sbin/nginx nginx16440.00.2148883896? S 09:550:00 nginx: worker process root49190.00.4147167936? S10:240:00 nginx: master process /usr/local/nginx/sbin/nginx nginx49210.00.2149164156? S10:240:00 nginx: worker process root49290.00.166362176pts/0 S10:270:00grep--colorauto nginx[rootNginx sbin]# kill -WINCH 1643[rootNginx sbin]# ps aux | grep nginxroot16430.00.1146882744? Ss 09:550:00 nginx: master process /usr/local/nginx/sbin/nginx root49190.00.4147167936? S10:240:00 nginx: master process /usr/local/nginx/sbin/nginx nginx49210.00.2149164156? S10:240:00 nginx: worker process root49320.00.166362176pts/0 S10:280:00grep--colorauto nginx3.版本回退|版本回滚[rootNginx sbin]# cd /usr/local/nginx/sbin/[rootNginx sbin]# cp nginx nginx.new -p[rootNginx sbin]# \cp nginx.old nginx -pf[rootNginx sbin]# ps aux | grep nginxroot16430.00.1146882744? Ss 09:550:00 nginx: master process /usr/local/nginx/sbin/nginx root49190.00.4147167936? S10:240:00 nginx: master process /usr/local/nginx/sbin/nginx nginx49210.00.2149164156? S10:240:00 nginx: worker process[rootNginx sbin]# kill -HUP 1643[rootNginx sbin]# ps aux | grep nginxroot16430.00.1146882744? Ss 09:550:00 nginx: master process /usr/local/nginx/sbin/nginx root49190.00.4147167936? S10:240:00 nginx: master process /usr/local/nginx/sbin/nginx nginx49210.00.2149164156? S10:240:00 nginx: worker process nginx49630.00.2148883896? S10:320:00 nginx: worker process root49650.00.166362176pts/0 S10:320:00grep--colorauto nginx[rootNginx sbin]# nginx -Vnginx version: nginx/1.28.1 built by gcc11.5.020240719(Red Hat11.5.0-5)(GCC)built with OpenSSL3.2.24Jun2024TLS SNI support enabled configure arguments:--prefix/usr/local/nginx--usernginx--groupnginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module#回收新版本进程[rootNginx sbin]# kill -WINCH 4919[rootNginx sbin]# ps aux | grep nginxroot16430.00.1146882744? Ss 09:550:00 nginx: master process /usr/local/nginx/sbin/nginx root49190.00.4147167936? S10:240:00 nginx: master process /usr/local/nginx/sbin/nginx nginx49630.00.2148883896? S10:320:00 nginx: worker process root49690.00.166362176pts/0 S10:340:00grep--colorauto nginx
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门