- 基础环境
- 操作系统
- fastDFS镜像
- fastDFS-Storage容器
- 升级storage容器内的nginx
- 进入storage容器
- 查看当前nginx进程
- 下载编译1.21.4版本的nginx
- 下载并解压
- 获取旧版本nginx编译的内容
- 在解压后的新的nginx文件里执行旧版本的configure arguments:里面的内容
- 执行make命令
- 新版本替换旧版本
- 首先备份旧的nginx可执行程序文件
- 找到新版本的nginx的可执行程序文件
- 用新版本的nginx可执行程序文件覆盖旧版本的nginx可执行程序文件
- 将旧的nginx服务下线
- 查看当前nginx版本
linux centOS 7.X
fastDFS镜像镜像版本:delron/fastdfs:latest
fastDFS-Storage容器fastDFS,docker版本分为两个容器,一个是tracker容器,一个是storage容器。
fastDFS内置的nginx是在storage容器
升级storage容器内的nginx 进入storage容器docker exec -it 62d7bf770ff5 /bin/bash
查看当前nginx进程[root@jeecg-boot-redis nginx]# ps aux | grep nginx root 2685 0.0 0.0 28052 1784 ? S Nov19 0:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 2686 0.0 0.0 28628 2136 ? S Nov19 0:00 nginx: worker process root 2721 0.0 0.0 9044 660 pts/2 S+ 02:44 0:00 grep --color=auto nginx下载编译1.21.4版本的nginx 下载并解压
依次执行命令:
wget http://nginx.org/download/nginx-1.21.4.tar.gz mv nginx-1.21.4.tar.gz /usr/local cd /usr/local tar xf nginx-1.21.4.tar.gz获取旧版本nginx编译的内容
[root@jeecg-boot-redis nginx]# sbin/nginx -V nginx version: nginx/1.12.2 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) configure arguments: --prefix=/usr/local/nginx --add-module=/tmp/nginx/fastdfs-nginx-module-master/src在解压后的新的nginx文件里执行旧版本的configure arguments:里面的内容
./configure --prefix=/usr/local/nginx --add-module=/tmp/nginx/fastdfs-nginx-module-master/src执行make命令
make
ps:不需要make install命令!!!
[root@jeecg-boot-redis /]# cd /usr/local/nginx/sbin/
[root@jeecg-boot-redis sbin]# ls
nginx nginx.bak
[root@jeecg-boot-redis sbin]# cp nginx{,.bak}
cp: overwrite 'nginx.bak'? y
[root@jeecg-boot-redis sbin]# ls
nginx nginx.bak
[root@jeecg-boot-redis sbin]#
找到新版本的nginx的可执行程序文件
[root@jeecg-boot-redis sbin]# cd /usr/local/nginx-1.21.4/ [root@jeecg-boot-redis nginx-1.21.4]# ls CHANGES CHANGES.ru LICENSE Makefile README auto conf configure contrib html man objs src [root@jeecg-boot-redis nginx-1.21.4]# cd objs/ [root@jeecg-boot-redis objs]# ls Makefile addon autoconf.err nginx nginx.8 ngx_auto_config.h ngx_auto_headers.h ngx_modules.c ngx_modules.o src [root@jeecg-boot-redis objs]#
上图红框框起来的就是nginx可执行程序文件
[root@jeecg-boot-redis objs]# cp -f nginx /usr/local/nginx/sbin/nginx cp: overwrite ‘/usr/local/nginx/sbin/nginx’? y将旧的nginx服务下线
1、查看旧的服务进程
[root@jeecg-boot-redis objs]# ps aux | grep nginx root 2685 0.0 0.0 28052 1784 ? S Nov19 0:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 2686 0.0 0.0 28628 2136 ? S Nov19 0:00 nginx: worker process root 2733 0.0 0.0 9044 664 pts/2 S+ 03:04 0:00 grep --color=auto nginx [root@jeecg-boot-redis objs]#
找到nginx父进程的pid号,发送USR2信号
依次执行命令:
kill -USR2 2685
kill -WINCH 2685
kill -QUIT 2685
[root@jeecg-boot-redis objs]# cd /usr/local/nginx [root@jeecg-boot-redis nginx]# ls client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp [root@jeecg-boot-redis nginx]# [root@jeecg-boot-redis nginx]# sbin/nginx -V nginx version: nginx/1.21.4 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) configure arguments: --prefix=/usr/local/nginx --add-module=/tmp/nginx/fastdfs-nginx-module-master/src [root@jeecg-boot-redis nginx]#
升级完成。
此次操作,是升级nginx版本来处理旧版本有漏洞的情况。如有更好的办法能解决旧版本的漏洞(在下是运维业余选手),欢迎一起分享一下。



