【服务器管理】使用Docker部署的项目修复nginx 安全漏洞(CVE-2021-23017)
本博客主要记录使用Docker部署的前端项目修复nginx 安全漏洞(CVE-2021-23017)的过程。
漏洞报告
根据网上查阅的资料,该漏洞波及的版本为0.6.18-1.20.0,而官方网站http://nginx.org/en/download.html已经提供了1.20.2的稳定版本,因此,可以考虑升级nginx版本为1.20.2。
升级nginx版本
1、查看生产环境使用的nginx版本
curl -i 127.0.0.1
返回如下:
HTTP/1.1 200 OK
Server: nginx/1.17.3
2、查看本地安装的nginx版本
# 查找nginx安装位置
whereis nginx
返回为:nginx: /usr/local/nginx
查看nginx安装版本:
/usr/local/nginx/sbin/nginx -V
返回的版本为nginx version: nginx/1.2.8
,这说明生产环境用的不是系统安装的版本,因此,可以考虑是通过docker部署的生产环境。
查看现在的nginx镜像的运行版本:
docker inspect nginx
拉取版本1.20.2的nginx
docker pull nginx:1.20.2
更改docker-compose.yml
配置,以下的/var/trunk
改为你的实际Docker部署项目的位置,其显著特征为包含docker-compose.yml
、Dockerfile
等文件
cd /var/trunk
vim docker-compose.yml
修改nginx的版本号
关闭docker-compose再重新开启:
docker-compose down
docker-compose restart
查看nginx版本:
curl -i 127.0.0.1
返回如下:
HTTP/1.1 200 OK
Server: nginx/1.20.2
这说明生产环境的nginx已经升级为1.20.2,修复漏洞成功!
需要注意的是,本博客仅适用于使用Docker部署生产环境的项目进行nginx版本升级!