pm2學(xué)習(xí)以及上線項(xiàng)目的個(gè)人總結(jié)

pm2 日常使用

1. pm2 是什么?

日常開發(fā)中需要啟動(dòng)一個(gè)node項(xiàng)目,需要用npm run …,,如果終端被關(guān)掉,程序也就自動(dòng)停止,有時(shí)候幾個(gè)項(xiàng)目一起跑起來,好幾個(gè)終端開著,個(gè)人不太喜歡,有一神器可以解決:pm2。pm2 是一個(gè)帶有負(fù)載均衡功能的Node應(yīng)用的進(jìn)程管理器.當(dāng)你要把你的獨(dú)立代碼利用全部的服務(wù)器上的所有CPU,并保證進(jìn)程永遠(yuǎn)都活著,0秒的重載, PM2是完美的。它非常適合IaaS結(jié)構(gòu),但不要把它用于PaaS方案。

2.安裝
npm install -g pm2
3.日常使用

由于node的百花齊放,啟動(dòng)一個(gè)網(wǎng)站的辦法,也會(huì)有很多種。這里先以:npm run dev為例:
首先查看項(xiàng)目的package.json文件(我的本地):

"scripts": {
"dev": "node build/dev-server.js --env=local",
"start": "node build/dev-server.js --env=local",
"build": "node build/build.js --env=publish",
"build-local": "node build/build.js"

},

npm run dev 實(shí)際就是運(yùn)行node腳本文件:dev-server.js,
可以用pm2啟動(dòng):pm2 start build/dev-server.js,可以給這個(gè)進(jìn)程取一個(gè)自己記得能理解的名字:pm2 start build/dev-server.js --name XXX,(XXX是你定義的名字)

如果你的node項(xiàng)目配置文件和以上代碼不一樣

莫急,pm2 也是有辦法可以啟動(dòng)的(個(gè)人覺得這是一個(gè)萬能的啟動(dòng)的方法):

pm2 start npm -- run XXX

用她替代:npm run dev,就可以寫成:pm2 start npm -- run dev,項(xiàng)目啟動(dòng)!
雖然項(xiàng)目啟動(dòng)了,但是名字并不是我想要的(我需要個(gè)自己能記得住的名字,并且是一個(gè)項(xiàng)目一個(gè)專屬name),這時(shí)候可以用:
pm2 start npm --watch --name XXX -- run start

#pm2的項(xiàng)目啟動(dòng)大概就這些了,日常還有些常用指令,如:
#查看所用已啟動(dòng)項(xiàng)目:
pm2 list
 #重啟:
pm2 restart XXX
#停止:
pm2 stop XXX
#刪除
pm2 delete XXX
#查看某個(gè)進(jìn)程/應(yīng)用具體情況
pm2 describe  Travel
#查看進(jìn)程/應(yīng)用的資源消耗情況
pm2 monit
#查看所有日志(某個(gè)進(jìn)程)
pm2 logs  (Travel)


注:以下不適用于學(xué)習(xí)交流,只是為了記錄在本次pm2配置node啟動(dòng)的時(shí)候遇到的一些問題以及項(xiàng)目部署上線的一個(gè)大題模糊流程。

1.在項(xiàng)目上線前

  • 購買了服務(wù)器、
  • 域名還未審核通過
  • 一個(gè)webpack管理通過npm run dev啟動(dòng)的項(xiàng)目

2.服務(wù)器配置

在購買了服務(wù)器后,會(huì)有一個(gè)ip地址,一個(gè)密碼,打開終端,輸入如下命令,并回車輸入密碼

ssh root@`ip地址`

然后就連接到了我們的服務(wù)器,進(jìn)入到根目錄可以看到目錄結(jié)構(gòu)

1.png

解釋主要的目錄結(jié)構(gòu):

  • node:node的安裝目錄,并且全部配置,關(guān)于如何在服務(wù)器配置node可百度。
  • root:root里面主要放的是一個(gè)webpack管理通過npm run dev啟動(dòng)的項(xiàng)目
  • etc:nginx服務(wù)器的安裝【修改較多的文件是/etc/nginx/nginx.conf】。
關(guān)于如何將本地項(xiàng)目復(fù)制到root下的小操作:
scp -r local-dir root@ip:remote_dir
#在本地終端執(zhí)行上述命令:
#【local-dir】為本地路徑;
#【ip】為你服務(wù)器的ip; 
#【remote_dir】為你放到遠(yuǎn)程服務(wù)器的地址,我們這里是 /root 
nginx.conf的配置(vi nginx.conf,內(nèi)容如下圖)
2.png

我們的主要配置放在了nginx/conf.d/*.conf, 內(nèi)容如下圖:


3.png

這里的配置主要的nginx反向代理以及負(fù)載均衡,我們這里不涉及負(fù)載均衡,但是可以看到有負(fù)載均衡的添加項(xiàng) upsteam roots,里面的server可以配置多個(gè)地址。
我們通過監(jiān)聽80端口,轉(zhuǎn)到8080端口去訪問服務(wù)。
前提條件是我們進(jìn)入到/root/testDemo項(xiàng)目中執(zhí)行 npm run dev項(xiàng)目的時(shí)候,node啟動(dòng)才會(huì)跳轉(zhuǎn)成功。


然后用pm2,安裝等略。

在看了一些列文章后,終于找到了啟動(dòng)方法,本文章記錄也就是為了下面這行代碼

pm2 start npm -- run XXX
#用她替代:npm run dev,就可以寫成:pm2 start npm -- run dev,項(xiàng)目啟動(dòng):

后來經(jīng)過一些配置后,這么啟動(dòng)出現(xiàn)了問題,然后輸入下面的命令得到解決:

pm2 delete npm
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容