NodeJs Web App測試完成後,要怎麼部署呢?介紹兩個不錯的方案
已知以下情景:
-
我要為 「kenniu」這個專案做配置
-
它的入口檔案在 「/path/to/entry.js」
-
執行的User和Group都是 MrKen
-
node安裝在了 /usr/bin/node
-
監聽埠是2589
接下分別看這兩種方案。
壹 | Fisrt
方案一:配置System,24小時保持線上
-
cd /etc/systemd/system/
-
sudo vi kenniu.service 輸入以下配置資訊
- sudo chmod +x kenniu.service, 加上可執行許可權
完成以上操作即可,非常簡單。
啟動:sudo systemctl start kenniu
除了start以外,可以stop、restart,以及status檢視狀態(出錯時可檢視)。此外,還可以 sudo systemctl enable kenniu 來使這項服務開機自動啟動
親測OK,很爽很好用!
優點:
-
配置簡單,學習成本低
-
出錯自動重啟,24保持線上(如果頻次太高也是會切斷的,所以最靠譜的保障還是得靠監控)
-
通用,不但CentOS支援,其他版本的Linux也支援
缺點:
-
不太靈活
貳 | Second
方案二:編寫Service init指令碼
-
cd /etc/init.d/ 或 /etc/rc.d/init.d/
-
sudo vi kenniu,輸入shell指令碼(後面再細講)
-
sudo chmod +x kenniu
-
sudo chkconfig --add kenniu
完成以上操作即可。
啟動:sudo service start kenniu
除了start以外,可以stop、restart等。
親測成功,也很爽!
方案二的指令碼怎麼寫
到目前為止都很簡單,就剩下最難的——指令碼怎麼寫。
其大體的框架如以下虛擬碼,看註釋。另外點選 可以獲取我的完整配置,根據你的情況把上邊的變數值改一下即可用。
優點:
-
自已寫指令碼處理,非常靈活,包括各個步驟要輸出什麼提示語都可以自己掌控
缺點:
-
需要學些shell指令碼
-
不太通用,貌似CentOS、RedHat等才支援,不甚清楚
此文是閒暇時,把之前公眾號的文章搬過來的。