今天閑來研究了一下nginx的無縫升級,還真是簡單啊,之前看了些文章寫的是1.1之前版本的無縫升級,說是make以后,不要make install,要手動將老的nginx文件進行備份,我試了一下1.1.0升級到1.1.1,完全不需要這個操作。
假如我現在系統是1.1.0,要升級到1.1.1,或者是以前編譯的時候有些選項沒有加,現在需要重新編譯。
那么我需要做的是在configure的時候,路徑選擇之前安裝版本的路徑,然后make && make install
然后我們進入nginx的sbin目錄,我們發現,里面有2個nginx啟動文件,nginx和nginx.old
我們分別用./nginx -v和./nginx.old -v檢查一下的話,發現結果老的nginx已經被替換為nginx.old
./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
那么說明配置正常
然后我們執行一下kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
ps aux| grep nginx檢查一下
我們發現
root 2248 0.0 0.1 20752 1420 ? S 16:46 0:00 nginx: master process ./nginx
nobody 2249 0.0 0.1 21164 1416 ? S 16:46 0:00 nginx: worker process
root 5108 0.0 0.1 20748 1408 ? S 17:07 0:00 nginx: master process ./nginx
nobody 5109 0.0 0.1 21144 1172 ? S 17:07 0:00 nginx: worker process
而原來存放nginx.pid的目錄也自動出現了nginx.pid.oldbin
現在新的和舊的一起在提供服務,這是我們只需要把舊的停掉就可以了,執行
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
這樣升級就完成了,雖然寫了這么多話,但其實需要操作的還是很少的。
上一篇 正確認識DIV+CSS布局