今天應開發的需求,需要在Nginx增加一個模塊,並不能影響現有的業務,所以就必須要平滑升級Nginx,好了,不多說了
1:查看現有的nginx編譯參數
/usr/local/nginx/sbin/nginx -V
2:按照安裝nginx的方法進行安裝,只需要到make,千萬不要make install
3: 備份舊版本的nginx可執行文件(期間nginx不會停止服務)
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
4:復制新的nginx二進制文件,進入新的nginx源碼包
cp objs/nginx /usr/local/nginx/sbin/
5: 測試新版本的nginx是否正常
/usr/local/nginx/sbin/nginx -t
6: 給nginx發送平滑遷移信號(若不清楚pid路徑,請查看nginx配置文件)
kill -USR2 `cat /var/run/nginx.pid`
7:查看nginx pid,會出現一個nginx.pid.oldbin
8:從容關閉舊的Nginx進程
kill -WINCH `cat /var/run/nginx.pid.oldbin`
9:此時不重載配置啟動舊的工作進程
kill -HUP `cat /var/run/nginx.pid.oldbin`
10:結束工作進程,完成此次升級
kill -QUIT `cat /var/run/nginx.pid.oldbin`
11:驗證Nginx是否升級成功
/usr/local/nginx/sbin/nginx -V