1 问题背景

  • nginx 安全漏洞(CVE-2019-9511)
  • nginx 安全漏洞(CVE-2019-9513)
  • nginx 安全漏洞(CVE-2019-9516)
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-201908-924
https://github.com/httpwg/http2-spec/wiki/Implementations
https://www.sohu.com/a/335416469_120149005 nginx 1.16.1 稳定版和 nginx 1.17.3 主线版发布 修复安全问题
https://www.nginx.com/blog/nginx-updates-mitigate-august-2019-http-2-vulnerabilities/ Nginx官方的修复建议
http://nginx.org/en/CHANGES
https://blog.csdn.net/join_gonner/article/details/109239053 升级nginx的参考博客(仅作思路参考,但不推荐按照此博客的做,该博客存在非常多问题,例如: 直接执行 ./configure)
  • 最终结论:升级到 Nginx 1.17.5
Nginx官方建议:
http://nginx.org/en/CHANGES
https://www.nginx.com/blog/nginx-updates-mitigate-august-2019-http-2-vulnerabilities/
NGINX 1.16.1 (stable)
NGINX 1.17.3 (mainline)
NGINX Plus R18 P1

2 环境信息

  • 服务器及操作系统版本
# cat /etc/redhat-release
CentOS release 6.8 (Final)

  • Nginx原版本
# ps -ef | grep -i nginx
root 31044 1 0 Jun04 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
root 31045 31044 0 Jun04 ? 00:00:02 nginx: worker process
root 714299 714269 0 12:33 pts/4 00:00:00 grep -i nginx # ll /proc/31044 | grep -i CWD
lrwxrwxrwx 1 root root 0 6月 15 16:52 cwd -> /usr/local/nginx/sbin # /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.15.12


3 升级步骤

step1 Nginx 备份

cp -r /usr/local/nginx /usr/local/nginx.202106161252.bak
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.202106161252.old.bak

step2 下载、上传、解压Nginx新版本安装包

下载地址

http://www.nginx.org/download/nginx-1.17.5.tar.gz

上传安装包到如下指定目录

mkdir -p /opt/SDCUpgrades/20210615/servers/nginx

/opt/SDCUpgrades/20210615/servers/nginx/nginx-1.17.5.tar.gz

解压

tar -xvf /opt/SDCUpgrades/20210615/servers/nginx/nginx-1.17.5.tar.gz -C /opt/SDCUpgrades/20210615/servers/nginx/

step3 编译前配置

cd /opt/SDCUpgrades/20210615/servers/nginx/nginx-1.17.5

./configure --prefix=/usr/local/nginx \
--with-http_stub_status_module

【高危警告】 configure的参数必须与 .../sbin/nginx -V中显示的参数一模一样,切记!!

--conf-path=/usr/local/nginx/conf : 此时不会对 /usr/local/nginx 产生 任何影响;尚不会在 /usr/local/nginx 目录下产生任何文件

step4 编译(只编译不安装)

/usr/local/nginx/sbin/nginx -s stop

cd /opt/SDCUpgrades/20210615/servers/nginx/nginx-1.17.5
make

step5 升级(覆盖)

cp /opt/SDCUpgrades/20210615/servers/nginx/nginx-1.17.5/objs/nginx /usr/local/nginx/sbin/

step6 测试新版本nginx是否正常

/usr/local/nginx/sbin/nginx -t

step7 如果测试正常,则:立即启动 nginx

/usr/local/nginx/sbin/nginx

step8 查验版本(确认nginx是否升级成功)

显示最新编译的版本信息即更新成功

/usr/local/nginx/sbin/nginx -V


X 参考文献

[Nginx/Linux]Nginx从1.15.12平滑升级到1.17.5的更多相关文章

  1. 平滑升级你的Nginx

    1.概述(可以直接跳过看第2部分) Nginx方便地帮助我们实现了平滑升级.其原理简单概括,就是: (1)在不停掉老进程的情况下,启动新进程. (2)老进程负责处理仍然没有处理完的请求,但不再接受处理 ...

  2. 高性能Web服务器Nginx的配置与部署研究(14)平滑升级你的Nginx

    1.概述(可以直接跳过看第2部分) Nginx方便地帮助我们实现了平滑升级.其原理简单概括,就是: (1)在不停掉老进程的情况下,启动新进程. (2)老进程负责处理仍然没有处理完的请求,但不再接受处理 ...

  3. Nginx 启动、停止、平滑重启和平滑升级 graceful shutdown of worker processes

    Controlling nginx http://nginx.org/en/docs/control.html nginx can be controlled with signals. The pr ...

  4. Nginx平滑升级的详细操作方法

    转至:https://blog.csdn.net/midion9/article/details/49684325 一.平滑升级概述Nginx方便地帮助我们实现了平滑升级.其原理简单概括,就是:(1) ...

  5. nginx的平滑升级

    一:解释nginx的平滑升级 随着nginx越来越流行,并且nginx的优势也越来越明显,nginx的版本迭代也来时加速模式,1.9.0版本的nginx更新了许多新功能,例如stream四层代理功能, ...

  6. Nginx学习——Nginx启动、停止、重启和信号控制以及平滑升级

    1.Nginx 启动与停止 (1)启动方式 启动格式:Nginx可执行文件地址 -c Nginx配置文件地址 /etc/local/nginx/sbin/nginx -c /root/dufy/ngi ...

  7. Nginx的特性功能-反向代理、负载均衡、缓存、动静分离、平滑升级

    反向代理 nginx配置文件 events  {   }  事件驱动 httpd  {   }   关于httpd相关的配置 server {  }  定义虚拟主机 location {   }    ...

  8. nginx信号及平滑升级

    1.nginx信号 nginx进程处理命令: kill -signals PID PID即nginx进程ID signals的参数解释如下所示: TERM,INT快速关闭进程 QUIT优雅的关闭,如果 ...

  9. Kubernets二进制安装(19)之集群平滑升级

    在实际生产环境中,部署好的集群稳定就行了,但是,如果需要使用到新的功能或当前版本出现了严重的漏洞,都建议做升级,本教程是将node节点从v1.15.10版本平滑升级到v1.15.12版本,如果升级到相 ...

  10. Nginx1.8.0版本平滑升级新版本1.9.7

    原文:http://www.jb51.net/article/79878.htm 首先查看现在环境nginx的版本为1.8.0 编译的参数只指定了安装路径: 复制代码代码如下: [root@local ...

随机推荐

  1. SpringBoot测试类注入Bean失败原因

    首先针对SpringBoot的测试类,2.2版本之前和2.2版本之后是不一样的,在2.2版本之前需要贴注解@SpringBootTest和@RunWith(SpringRunner.class)需要在 ...

  2. cobbler安装CentOS-8系统

    cobbler安装CentOS-8系统 cobbler 1. cobbler简介 2. cobbler服务端部署 3. 客户端安装 4. 定制安装 1. cobbler简介 Cobbler是一个Lin ...

  3. JavaScript基础学习之一

    目录 let和var之间的区别 作用域不同 变量提升 暂时性死区(temporal dead zone,简称 TDZ) 相同作用域下的重复声明 脚本调用 数据类型 Boolean Object 对象 ...

  4. Docker部署Reids单机

    一.Redis镜像拉取 docker pull redis 指定版本 docker pull redis:5.0.8 二.Redis单实例安装 1.创建容器挂在目录 (-p 递归创建目录,上级目录不存 ...

  5. 重复引入reactor-netty

    java.lang.NoClassDefFoundError: reactor/util/retry/Retry at reactor.netty.http.client.HttpClientConn ...

  6. JavaScript 字符串和正则相关的方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. windows电脑设置【定时任务】开机、关机、启动程序

    windows电脑设置[定时任务]开机.关机.启动程序 shutdown -s -t **(延时秒数):关机 shutdown -r -t **(延时秒数):重启 gina -s -t 36 (开机) ...

  8. 拖拽改变div宽、高(转)

    $(function () { //绑定需要拖拽改变大小的元素对象 bindResize(document.getElementById('test')); }); function bindResi ...

  9. 2021.01.08 oss is not defined

    背景: 视频点播使用阿里云的oss(Object storage services),然后总是报错oss is not defined, 在网上搜索了一些文章,基本上都是一模一样的,我也就不吐槽啦(这 ...

  10. IDEA下Maven项目中通过JDBC连接MySQL数据库

    ### 1. 在当前Maven项目的pom.xml文件中导入数据库依赖: ```<dependency> <groupId>mysql</groupId> < ...