首頁  >  文章  >  運維  >  nginx平滑升級的操作教學課程

nginx平滑升級的操作教學課程

巴扎黑
巴扎黑原創
2017-07-19 11:13:291655瀏覽

平滑升級概述
Nginx方便地幫助我們實現了平滑升級。其原理簡單概括,就是:
(1)在不停掉舊進程的情況下,啟動新進程。
(2)舊進程負責處理仍然沒有處理完的請求,但不再接受處理請求。
(3)新進程接受新請求。
(4)舊流程處理完所有請求,關閉所有連線後,停止。
這樣就很方便地實現了平滑升級。一般有兩種情況下需要升級Nginx,一種是確實要升級Nginx的版本,另一種是要為Nginx新增新的模組。

升級過程
具體的操作也很簡單,如下:

(0)查看目前版本
在存放Nginx的可執行檔的目錄下輸入:

複製程式碼如下:

##./nginx -V 


(1)下載新的Nginx版本並編譯。


複製程式碼如下:

wget nginx-1.0.11.tar.gz  

tar zxvf nginx-1.0.11.tar.gz  
cd nginx- 1.0.11  
./configure --add-module=/customized_module_0 --add-module=/customized_module_1  
make 



#下載:

[root@liuawblizfpws~]#wget *.*.tar.gz (版本號碼已修改)

解壓縮:

[root@liuawblizfpws ~]#tar zxvf  nginx-0.*.*.tar.gz (版本號已修改)

#這裡順便把nginx的版本號碼修改了,起到一定的安全作用。

修改原始碼檔案:

[root@liuawblizfpws ~]#vim nginx-0.*.*/src/core/nginx.h
#define NGINX_VERSION      "*.$.&"   (版本號)
#define NGINX_VER          "net/" NGINX_VERSION  (伺服器名稱)
##################################家的:######[root@liuawblizfpws ~]#/usr/local/nginx/sbin/nginx -V######得到訊息(路徑因人而異):######nginx: configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module######編譯,但不安裝;在編譯目錄下的objs目錄下的nginx檔案即是新的執行檔:#########[root@liuawblizfpws nginx-0.*.*]#./configure --user=www --group=www -- prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module######[root@liuawblizfpws nginx-0.*.*]#make####################### nginx檔:######[root@liuawblizfpws ~]#mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old######將已經編譯好的nginx檔案複製到對應的執行路徑下:######cp ~/nginx-0.*.*/objs/nginx /usr/local/nginx/sbin/nginx######測試,以免不能平滑升級:#########[root@liuawblizfpws ~]#/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#########測試通過則將nginx.pid修改為您nginx.pid.oldbin,同時啟動新的nginx:######[root@liuawblizfpws ~]#kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`######################################################################################################################################################################################################################################退出原nginx:######[root@liuawblizfpws ~]#kill -QUIT `cat /usr/loca/nginx/logs/nginx.pid.oldbin`######查驗:########################################################### ####[root@liuawblizfpws ~]#curl -I netonline.me#########HTTP/1.1 200 OK######Server: net/*.$.### #####Date: Thu, 09 Dec 2010 05:13:36 GMT######

以上是nginx平滑升級的操作教學課程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn