平滑升級概述
Nginx方便地幫助我們實現了平滑升級。其原理簡單概括,就是:
(1)在不停掉舊進程的情況下,啟動新進程。
(2)舊進程負責處理仍然沒有處理完的請求,但不再接受處理請求。
(3)新進程接受新請求。
(4)舊流程處理完所有請求,關閉所有連線後,停止。
這樣就很方便地實現了平滑升級。一般有兩種情況下需要升級Nginx,一種是確實要升級Nginx的版本,另一種是要為Nginx新增新的模組。
升級過程
具體的操作也很簡單,如下:
(0)查看目前版本
在存放Nginx的可執行檔的目錄下輸入:
複製程式碼如下:
##./nginx -Vtar 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 ~]#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中文網其他相關文章!