nginx熱部署更新和日誌切割

2021-10-03 02:13:55 字數 1480 閱讀 5734

原來版本是1.12的裝在/usr/local/nginx2,現在需要更新成1.16的,需要進過以下步驟

1:檢視現有nginx程序資訊 ps -ef | grep nginx

root          7508     1  0 21:46 ?        00:00:00 nginx: master process ./sbin/nginx

nobody    7509  7508  0 21:46 ?        00:00:00 nginx: worker process

root          7524  1231  0 21:58 pts/0    00:00:00 grep nginx

然後把舊的二進位制檔案備份下

cp /usr/local/nginx2/sbin/nginx nginx.old

2: 把新的nginx的二進位制檔案覆蓋掉舊的nginx二進位制檔案

cd /data/soft/nginx-1.16.0

../configure --prefix=/usr/local/nginx2

make

cp -r /data/soft/nginx-1.16.0/objs/nginx /usr/local/nginx2/sbin/ -f

/data/soft/nginx-1.16.0/objs這個目錄是新的nginx1.16編輯後才有的

3:給正在執行舊的nginx的master程序發個訊號告訴master程序我們要熱部署了

kill -usr2 7508

執行之後發現會新起乙個master程序和worker程序,老的master跟worker都還在,只是不再監聽80跟443埠了

root      7508     1  0 21:46 ?        00:00:00 nginx: master process ./sbin/nginx

nobody    7509  7508  0 21:46 ?        00:00:00 nginx: worker process

root      7552  7508  0 22:16 ?        00:00:00 nginx: master process ./sbin/nginx

nobody    7553  7552  0 22:16 ?        00:00:00 nginx: worker process

./nginx -v

/usr/local/nginx2/sbn/nginx version: nginx/1.16.0

已經是新的版本了

4:把舊的worker程序優雅的關掉

kill -winch 7508

這個時候你會發現老的master程序還在,worker程序不在了,老的master程序流著可以做版本回退

二:日誌切割

1:把原來的access.log備份下

mv access.log access.log.bak

2: 執行:

./sbin/nginx -s reopen

Nginx 熱部署及新增模組和日誌切割

當從老版本替換為新版本的 nginx 的時候,如果不熱部署的話,會需要取消 nginx 服務並重啟服務才能替換成功,這樣的話會使正在訪問的使用者在斷開連線,所以為了在不影響使用者的體驗下進行版本公升級,就需要熱部署來公升級版本。因為進行公升級主要是更換二進位制檔案,所以在公升級前先備份舊的二進位制檔...

nginx命令列及演示 過載 熱部署 日誌切割

過載配置檔案 nginx s reload 熱部署 公升級nginx 首先備份二進位制檔案 cp nginx nginx.old 拷貝新版本的nginx替換以前的nginx二進位制檔案 cp nginx新 nginx。傳送訊號 kill usr2 nginx master舊程序pid 啟動新的mas...

遊戲大版本更新和熱更新

一般來說,不能通過小版本更新解決的問題,才會用到大版本更新,例如,不可熱更的遊戲 而熱更新是建立在每次大版本更新的基礎上進行的更新,因此,這2種更新方式應該互相承接。我們可以通過md5檔案和更新檔案以及版本號來實現大版本更新和熱更新。遊戲的版本號由大版本號 資源版本號構成,每一次大版本更新,大版本號...