linux-node開發的部署方式–PM2

Sting發表於2019-02-16

如果直接通過node app來啟動,如果報錯了可能直接停在整個執行,supervisor感覺只是拿來用作開發環境的。再網上找到pm2.目前似乎最常見的線上部署nodejs專案的有forever,pm2這兩種。
使用場合:

  • supervisor
    是開發環境用
  • forever
    管理多個站點,每個站點訪問量不大,不需要監控。
  • nodemon
    是開發環境使用,修改自動重啟。
  • pm2
    網站訪問量比較大,需要完整的監控介面。

PM2的主要特性

  1. 內建負載均衡(使用Node cluster 叢集模組)
  2. 後臺執行
  3. 0秒停機過載,我理解大概意思是維護升級的時候不需要停機.
  4. 具有Ubuntu和CentOS 的啟動指令碼
  5. 停止不穩定的程式(避免無限迴圈)
  6. 控制檯檢測
  7. 提供 HTTP API
  8. 遠端控制和實時的介面API ( Nodejs 模組,允許和PM2程式管理器互動 )

linux下安裝使用方法

  1. 安裝node npm 這裡不詳細描述了
  2. 安裝pm2 npm install pm2@latest -g 安裝好之後 需要配置全域性環境
ln -s opt/node.js/node-v10.13.0-linux-x64/bin/pm2 /usr/local/bin/
opt/node.js/node-v10.13.0-linux-x64/bin/pm2是我node安裝目錄 /usr/local/bin/全域性環境配置目錄

pm2 list //這個命令本身是列舉出所有用pm2啟動的程式


[root@WeiHuSrv /]# pm2 list
┌──────────┬────┬─────────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name │ id │ version │ mode │ pid   │ status │ restart │ uptime │ cpu │ mem       │ user │ watching │
├──────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ app      │ 0  │ 1.0.0   │ fork │ 17362 │ online │ 0       │ 42m    │ 0%  │ 35.1 MB   │ root │ disabled │
└──────────┴────┴─────────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app

出現這個就成功啦

PM2 常用命令

$ pm2 logs 顯示所有程式日誌
$ pm2 stop all 停止所有程式
$ pm2 restart all 重啟所有程式
$ pm2 reload all 0秒停機過載程式 (用於 NETWORKED 程式)
$ pm2 stop 0 停止指定的程式
$ pm2 restart 0 重啟指定的程式
$ pm2 startup 產生 init 指令碼 保持程式活著
$ pm2 web 執行健壯的 computer API endpoint (http://localhost:8080)
$ pm2 delete 0 殺死指定的程式
$ pm2 delete all 殺死全部程式


執行程式的不同方式:
$ pm2 start app.js -i max 根據有效CPU數目啟動最大程式數目
$ pm2 start app.js -i 3 啟動3個程式
$ pm2 start app.js -x 用fork模式啟動 app.js 而不是使用 cluster
$ pm2 start app.js -x — -a 23 用fork模式啟動 app.js 並且傳遞引數 (-a 23)
$ pm2 start app.js –name serverone 啟動一個程式並把它命名為 serverone
$ pm2 stop serverone 停止 serverone 程式
$ pm2 start app.json 啟動程式, 在 app.json裡設定選項
$ pm2 start app.js -i max — -a 23 在–之後給 app.js 傳遞引數
$ pm2 start app.js -i max -e err.log -o out.log 啟動 並 生成一個配置檔案

關於pm2遠端部署到多臺機器,參考:

http://pm2.keymetrics.io/docs…

官網:

http://pm2.keymetrics.io/docs…

相關文章