Linux_CentOS下搭建Nodejs 生產環境-以及nodejs進程管理器pm2的使用

nodejs安裝:http://www.javashuo.com/article/p-emzfuudt-be.htmlhtml

nodejs 進程管理器 pm2 的使用 node

PM2 是一款很是優秀的 Node 進程管理工具,它有着豐富的特性:可以充分利用多核 CPU 且可以負載均衡、可以幫助應用在崩潰後、指定時間(cluster model)和超出最大內存限制 等狀況下實現自動重啓。 npm

PM2 是開源的基於 Nodejs 的進程管理器,包括守護進程,監控,日誌的一整套完整的功能。 app

PM2 的主要特性: 負載均衡

1、內建負載均衡(使用 Node cluster 集羣模塊)
2、後臺運行
30 秒停機重載,我理解大概意思是維護升級的時候不須要停機. 4、具備 Ubuntu CentOS 的啓動腳本 5、中止不穩定的進程(避免無限循環)
6、控制檯檢測
koa

PM2 的常見命令:
1pm2 的安裝
async

npm install pm2 -g # 命令行安裝 pm2

2、運行 pm2 的程序並指定 name 工具

pm2 start app.js --name www_aaa_com
pm2 start app.js -i 3 --name www_bbb_com 3 啓動 3 個進程 (自帶負載均衡)

 

3、顯示全部進程狀態 測試

pm2 list

4、顯示全部進程狀態 ui

pm2 logs

 

五、顯示一個進程的日誌

 

的日誌 pm2 logs www_aaa_com

 

6、關閉重啓全部進程

pm2 stop all# 中止全部進程
pm2 restart all# 重啓全部進程
pm2 reload all # 0 秒停機重載進程 (用於 NETWORKED 進程)

7、關閉重啓指定進程

pm2 stop 0 # 中止指定的進程 
pm2 restart 0 # 重啓指定的進程
pm2 stop www_aaa_com
pm2 restart www_aaa_com

8、殺死進程

m2 delete 0   # 殺死指定的進程
pm2 delete all   # 殺死所有進程
pm2 delete www_aaa_com  # 殺死指定名字的進程

10、顯示相應進程/應用的整體信息

pm2 show www_aaa_com

 測試演示過程說明:

到home下,建立www_aaa_com 和www_bbb_com 文件夾,將項目代碼分別拷貝進去

用cnpm(gzip 壓縮支持) 命令行工具代替默認的 npm:

npm install -g cnpm --registry=https://registry.npm.taobao.org

而後cnpm install 安裝環境依賴

www_aaa_com app.js代碼:

//引入 koa模塊

var Koa=require('koa');

var router = require('koa-router')();  /*引入是實例化路由** 推薦*/

//實例化
var app=new Koa();

router.get('/',async (ctx)=>{

    console.log('aaaa執行');
    ctx.body="這是www_aaa_com的首頁";

})

router.get('/news',async (ctx)=>{
    ctx.body="這是www_aaa_com的新聞列表頁面";

})

app.use(router.routes());   /*啓動路由*/
app.use(router.allowedMethods());
app.listen(3001);

www_bbb_com 中app.js代碼:

//引入 koa模塊

var Koa=require('koa');

var router = require('koa-router')();  /*引入是實例化路由** 推薦*/

//實例化
var app=new Koa();

router.get('/',async (ctx)=>{

    console.log('bbb執行');
    ctx.body="這是www_bbb_com的首頁111111111111";

})

router.get('/news',async (ctx)=>{
    ctx.body="這是www_bbb_com的新聞列表頁面";

})

app.use(router.routes());   /*啓動路由*/
app.use(router.allowedMethods());
app.listen(3002);

關閉防火牆

systemctl stop firewalld 

在對應的目錄下,分別用pm2啓動項目

pm2 start app.js --name www_aaa_com   
pm2 start app.js --name www_bbb_com
相關文章
相關標籤/搜索