背景:

根据其服务器响应标头,安装的 nginx 版本为低于 1.16.1 的 1.9.5,或是低于 1.17.3 的 1.17.x。因此,它受到多种拒绝服务漏洞的影响:

- HTTP/2 协议堆栈中存在拒绝服务漏洞,这是未正确处理异常情况所致。未经身份验证的远程攻击者可操纵大型数据请求的窗口大小和流优先级,进而利用此漏洞,造成拒绝服务情况。(CVE-2019-9511)

- HTTP/2 协议堆栈中存在拒绝服务漏洞,这是未正确处理异常情况所致。未经身份验证的远程攻击者可创建多个请求流并持续打乱流的优先级,进而利用此漏洞,造成拒绝服务情况。(CVE-2019-9513)

- HTTP/2 协议堆栈中存在拒绝服务漏洞,这是未正确处理异常情况所致。未经身份验证的远程攻击者可发送标头名称和标头值长度均为零的标头流,进而利用此漏洞,造成拒绝服务情况。(CVE-2019-9516)

 

现在运行的版本比较老了。且因为业务最好能不中断,所以有了今天的记录。

 

1 先把新版本的包下载,放到原来nginx同级目录;

  wget https://nginx.org/download/nginx-1.21.6.tar.gz

2 解压;

3 编译;注意用nginx/sbin/nginx -V 查看原来的编译参数;

 

4 make

5 查看进程,并向主进程(master)发送USR2 信号,Nginx 会启动一个新版本的 master 进程和对应工作进程,和旧版一起处理请求

  kill -USR2 29568
 
6 向旧的Nginx主进程(master)发送 WINCH 信号,它会逐步关闭自己的工作进程(主进程不退出),这时所有请求都会由新版 Nginx 处理
  kill -WINCH 29568 
 
7 验证nginx版本号,并访问测试

 

 

 

8 升级完毕,可向旧的Nginx主进程(master)发送(QUIT、TERM、或者KILL)信号,使旧的主进程退出

  kill -QUIT 29568

 

#history

 3020  11/03/22 18:31:54 wget https://nginx.org/download/nginx-1.21.6.tar.gz
 3029  11/03/22 18:39:22 tar -zxvf nginx-1.21.6.tar.gz
 3031  11/03/22 18:39:28 cd nginx-1.21.6
 3054  11/03/22 18:59:40 ./configure --user=nginx --group=nginx --prefix=/app/nginx --with-http_ssl_module --with-http_stub_status_module --add-module=ngx_http_limit_req_module
 3055  11/03/22 19:11:33 make

 3064  11/03/22 19:53:37 objs/nginx -v
 3065  11/03/22 19:54:18 cp /app/nginx/sbin/nginx{,.20220311}
 3066  11/03/22 19:54:22 cp -f objs/nginx /app/nginx/sbin/nginx
 3067  11/03/22 19:54:41 ps  -ef |grep nginx
 3068  11/03/22 19:55:16 kill -USR2 29568
 3069  11/03/22 19:55:19 ps  -ef |grep nginx
 3070  11/03/22 19:56:47 ps  -ef |grep nginx
 3071  11/03/22 19:57:23 kill -WINCH 29568
 3072  11/03/22 19:57:27 ps  -ef |grep nginx
 3073  11/03/22 19:58:14 kill -QUIT 29568
 3074  11/03/22 19:58:39 curl -I 127.0.0.1
 3075  11/03/22 19:58:47 /app/nginx/sbin/nginx -V
View Code

 

 posted on 2022-03-11 20:08  Laijx  阅读(327)  评论(0编辑  收藏  举报