一、平滑升級概述
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  
注意不要進行make install
(2)備份老版本的可執行文件
 代碼如下:cd /usr/local/nginx/sbin  
sudo cp nginx nginx.old  
(3)修改配置文件
如果有必要的話,進行配置文件的修改。
(4)拷貝新的可執行文件
 代碼如下:sudo cp /home/michael/tmp/nginx-1.0.11/objs/nginx /usr/local/nginx/sbin/  
(5)升級
 代碼如下:cd /home/michael/tmp/nginx-1.0.11  
make upgrade  
(6)清理多余文件
 代碼如下:rm -rf /home/michael/tmp/nginx-1.0.11  
(7)查看Nginx版本
 代碼如下:cd /usr/local/nginx/sbin  
./nginx -V  
三、觀察進程變化
在我的機器上可以觀察到,我配置的是10個worker進程,啟動后觀察到:
 代碼如下:root      6241 10419  0 10:51 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx  
nobody    6242  6241  2 10:51 ?        00:00:00 nginx: worker process        
nobody    6243  6241  0 10:51 ?        00:00:00 nginx: worker process        
nobody    6244  6241  0 10:51 ?        00:00:00 nginx: worker process        
nobody    6245  6241  0 10:51 ?        00:00:00 nginx: worker process        
nobody    6246  6241  0 10:51 ?        00:00:00 nginx: worker process        
nobody    6247  6241  0 10:51 ?        00:00:00 nginx: worker process                    
新聞熱點
疑難解答