1. 程式人生 > >pm2入門級實操指南(安裝+部署專案)

pm2入門級實操指南(安裝+部署專案)

1.為什麼要用pm2

通常情況下,我們在linux伺服器上部署nodejs的程式,只需要在伺服器上安裝nodejs環境即可,然後node myapp.js,程式就跑起來了。但是發現了一個問題,我用的是xshell進行的遠端連線伺服器,當我本機的xshell斷開或者是關閉後,伺服器端的node服務就停止了,公網無法訪問此應用服務,pm2可以很好的解決此問題,用pm2模組部署的服務,直接在後臺執行nodejs的應用服務,而且程序中斷後會自動重啟,保證了應用服務的可用性。

PM2是node程序管理工具,可以利用它來簡化很多node應用管理的繁瑣任務,如效能監控、自動重啟、負載均衡等,而且使用非常簡單。

2.安裝及啟動應用服務

//1.安裝pm2
npm install -g pm2

//2.執行pm,發現不行,解決問題 -bash: pm2: command not found
pm2

//3.同步nodejs npm 版本
curl -0 -L https://npmjs.org/install.sh | sudo sh

//4.檢視node安裝目錄,也是pm2的安裝目錄
npm config get prefix

//5.進入pm2安裝目錄,測試 pm2
cd /root/node/lib/node_modules/pm2/bin
./ pm2

//6.配置全域性變數
ln -s /root/node/lib/node_modules/pm2/bin/pm2 /usr/local/bin/pm2

//7.測試pm2指令並啟動應用服務
cd
pm2 -h
cd node/project/EatwhatS
pm2 start app.js --watch


3.驗證pm2是否起作用

在xshell關閉遠端連線,然後在公網訪問服務,發現服務正常,然後登陸伺服器檢視程序。

4.在全域性安裝了pm2後pm2指令不可用如何解決

/root/node/bin/pm2 -> /root/node/lib/node_modules/pm2/bin/pm2
/root/node/bin/pm2-dev -> /root/node/lib/node_modules/pm2/bin/pm2-dev
/root/node/bin/pm2-docker -> /root/node/lib/node_modules/pm2/bin/pm2-docker
/root/node/bin/pm2-runtime -> /root/node/lib/node_modules/pm2/bin/pm2-runtime
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/pm2/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

+ [email protected]
updated 1 package in 28.224s

出現pm2不可用,需要修復一下node與npm之間的關係。

curl -0 -L https://npmjs.org/install.sh | sudo sh