nginx平滑公升級

2022-07-28 13:33:26 字數 4766 閱讀 2657

nginx平滑公升級

一.上傳新版本的nginx原始碼包

[root@localhost ~]# rz               #上傳自己新版本的nginx原始碼包

[root@localhost ~]# ls                #檢視

nginx-1.16.1.tar.gz     

nginx-1.17.3.tar.gz  

[root@localhost ~]# tar xf nginx-1.17.3.tar.gz -c /usr/src/           #將軟體包解包

二.檢視老版本的nginx編譯安裝資訊

[root@localhost ~]# nginx -v                 #獲取到老版本的nginx編譯安裝資訊

三.將新版本的原始碼包進行編譯,但不執行安裝(make install)

四.將二進位制檔案進行備份,用新版替換舊的

[root@localhost ~]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/old.nginx

[root@localhost ~]# ls /usr/local/nginx/sbin/

old.nginx

[root@localhost ~]# cp /usr/src/nginx-1.17.3/objs/nginx /usr/local/nginx/sbin/

[root@localhost ~]# ls /usr/local/nginx/sbin/

nginx  old.nginx

五.確保檔案不會進行報錯

[root@localhost ~]# nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@localhost ~]# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

六.傳送usr2訊號

向主程序(master)傳送usr2訊號,nginx會啟動乙個新版本的master程序和對應工作程序,和舊版一起處理請求

[root@localhost ~]# ps aux | grep nginx | grep -v grep

root       4108  0.0  0.2  45028  1152 ?        ss   16:58   0:00 nginx: master process /usr/local/nginx/sbin/nginx

nginx      4109  0.0  0.4  45456  2012 ?        s    16:58   0:00 nginx: worker process     

[root@localhost ~]# kill -usr2 4108

[root@localhost ~]# ps aux | grep nginx | grep -v grep

root       4108  0.0  0.2  45028  1316 ?        ss   16:58   0:00 nginx: master process /usr/local/nginx/sbin/nginx

nginx      4109  0.0  0.4  45456  2012 ?        s    16:58   0:00 nginx: worker process     

root       6605  0.5  0.6  45196  3364 ?        s    17:02   0:00 nginx: master process /usr/local/nginx/sbin/nginx

nginx      6607  0.0  0.3  45624  1756 ?        s    17:02   0:00 nginx: worker process

七.傳送winch訊號

向舊的nginx主程序(master)傳送winch訊號,它會逐步關閉自己的工作程序(主程序不退出),這時所有請求都會由新版nginx處理

[root@localhost ~]# kill -winch 4108

[root@localhost ~]# ps aux | grep nginx | grep -v grep

root       4108  0.0  0.2  45028  1320 ?        ss   16:58   0:00 nginx: master process /usr/local/nginx/sbin/nginx

root       6605  0.0  0.6  45196  3364 ?        s    17:02   0:00 nginx: master process /usr/local/nginx/sbin/nginx

nginx      6607  0.0  0.3  45624  1756 ?        s    17:02   0:00 nginx: worker process

八.傳送quit訊號

公升級完畢,可向舊的nginx主程序(master)傳送(quit、term、或者kill)訊號,使舊的主程序退出

[root@localhost ~]# kill -quit 4108

[root@localhost ~]# ps aux | grep nginx | grep -v grep

root       6605  0.0  0.6  45196  3364 ?        s    17:02   0:00 nginx: master process /usr/local/nginx/sbin/nginx

nginx      6607  0.0  0.4  45624  2056 ?        s    17:02   0:00 nginx: worker process

九.驗證nginx版本號,並訪問測試

[root@localhost ~]# nginx -v                                 #檢視新版本資訊

[root@localhost ~]# curl -i 127.0.0.1                    #進行訪問測試

nginx平滑公升級

先來說下我今天要實驗nginx平滑公升級的環境,從nginx.1.8.0公升級到nginx1.9.5 大概的流程 nginx的程序分為master主程序和work工作程序,master程序主要管理事件訊號接受和分發,所有的請求處理都由work程序處理並返回結 果,nginx的平滑重啟或過載配置檔案等...

Nginx平滑公升級

原文 來自nginx官網 如果想要公升級nginx版本 或者在原本版上增加 刪除模組 同時保持服務不間斷,採用如下方式可滿足要求。1.使用新的二進位制檔案替換老的二進位制檔案,這需要注意的是nginx原始碼在執行make編譯後,不要直接make install,否則可能會覆蓋其他配置檔案,命令如下 ...

Nginx平滑公升級

有時,我們需要對我們的伺服器進行公升級更高版本。此時,如果我們強行將伺服器停止然後直接公升級,這樣原來在伺服器上執行著的程序就會被影響。如何解決這個問題呢?可以通過平滑公升級的方式來解決。平滑公升級時,不會停掉在執行著的程序,這些程序會繼續處理請求,但不會再接受新請求,在這些老程序在處理完還在處理的...