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

若是直接經過node app來啓動,若是報錯了可能直接停在整個運行,supervisor感受只是拿來用做開發環境的。再網上找到pm2.目前彷佛最多見的線上部署nodejs項目的有forever,pm2這兩種。
使用場合:node

  • 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啓動的程序linux

[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

出現這個就成功啦web

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 殺死所有進程npm


運行進程的不一樣方式:
$ 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 啓動 並 生成一個配置文件json

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

http://pm2.keymetrics.io/docs...負載均衡

官網:網站

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

相關文章
相關標籤/搜索