平常開發中須要啓動一個node項目,須要用npm run …,,若是終端被關掉,程序也就自動中止,有時候幾個項目一塊兒跑起來,好幾個終端開着,我的不太喜歡,有一神器能夠解決:pm2。pm2 是一個帶有負載均衡功能的Node應用的進程管理器.當你要把你的獨立代碼利用所有的服務器上的全部CPU,並保證進程永遠都活着,0秒的重載, PM2是完美的。它很是適合IaaS結構,但不要把它用於PaaS方案。node
npm install -g pm2
複製代碼
因爲node的百花齊放,啓動一個網站的辦法,也會有不少種。這裏先以:npm run dev爲例: 首先查看項目的package.json文件(個人本地):webpack
"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"
複製代碼
},nginx
npm run dev
實際就是運行node腳本文件:dev-server.js
, 能夠用pm2啓動:pm2 start build/dev-server.js
,能夠給這個進程取一個本身記得能理解的名字:pm2 start build/dev-server.js --name XXX
,(XXX是你定義的名字)web
莫急,pm2 也是有辦法能夠啓動的(我的以爲這是一個萬能的啓動的方法):npm
pm2 start npm -- run XXXjson
用她替代:npm run dev,就能夠寫成:
pm2 start npm -- run dev
,項目啓動! 雖然項目啓動了,可是名字並非我想要的(我須要個本身能記得住的名字,而且是一個項目一個專屬name),這時候能夠用:pm2 start npm --watch --name XXX -- run start
服務器
#pm2的項目啓動大概就這些了,平常還有些經常使用指令,如:
#查看所用已啓動項目:
pm2 list
#重啓:
pm2 restart XXX
#中止:
pm2 stop XXX
#刪除
pm2 delete XXX
#查看某個進程/應用具體狀況
pm2 describe Travel
#查看進程/應用的資源消耗狀況
pm2 monit
#查看全部日誌(某個進程)
pm2 logs (Travel)
複製代碼
- 購買了服務器、
- 域名還未審覈經過
- 一個webpack管理經過npm run dev啓動的項目 ###2.服務器配置 在購買了服務器後,會有一個ip地址,一個密碼,打開終端,輸入以下命令,並回車輸入密碼
ssh root@`ip地址`
複製代碼
而後就鏈接到了咱們的服務器,進入到根目錄能夠看到目錄結構負載均衡
解釋主要的目錄結構:ssh
node
:node的安裝目錄,而且所有配置,關於如何在服務器配置node可百度。root
:root裏面主要放的是一個webpack管理經過npm run dev啓動的項目etc
:nginx服務器的安裝【修改較多的文件是/etc/nginx/nginx.conf
】。
scp -r local-dir root@ip:remote_dir
#在本地終端執行上述命令:
#【local-dir】爲本地路徑;
#【ip】爲你服務器的ip;
#【remote_dir】爲你放到遠程服務器的地址,咱們這裏是 /root
複製代碼
這裏的配置主要的nginx反向代理以及負載均衡,咱們這裏不涉及負載均衡,可是能夠看到有負載均衡的添加項
upsteam roots
,裏面的server能夠配置多個地址。 咱們經過監聽80端口,轉到8080端口去訪問服務。 前提條件是咱們進入到/root/testDemo項目中執行 npm run dev項目的時候,node啓動纔會跳轉成功。學習
在看了一些列文章後,終於找到了啓動方法,本文章記錄也就是爲了下面這行代碼
pm2 start npm -- run XXX
#用她替代:npm run dev,就能夠寫成:pm2 start npm -- run dev,項目啓動:
複製代碼
後來通過一些配置後,這麼啓動出現了問題,而後輸入下面的命令獲得解決:
pm2 delete npm複製代碼