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
相关文章
相关标签/搜索