1. 程式人生 > 其它 >ginx/1.13.3熱升級1.21.6

ginx/1.13.3熱升級1.21.6

背景:

根據其伺服器響應標頭,安裝的 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