一、平滑升級概述
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
新聞熱點
疑難解答