为什么用?
持久化:一旦开始使用,您的应用将达到持久化,在崩溃和机器重启时自启动。
流程管理 : 您所有的应用都被守护进程
日志管理 所有的应用日志都会保存到您的服务器硬盘中~/.pm2/logs/。
零配置负载均衡器 pm2通过创建多个共享相同服务器端口的子进程来扩展您的应用。这样您可以在停机时间为零的情况下重启您的应用。
终端内监控 在终端中监控您的应用以检查您的应用运行状况(CPU使用情况,内存使用,请求/分钟以及更多)
使用SSH轻松部署 :自动完成部署,不需一对一的ssh服务器连接。
Docker化
安装pm2
使用yarn:
yarn global add pm2
使用npm:
npm install pm2 -g
在debian操作系统下,使用安装脚本:
apt update && apt install sudo curl && curl -sL https://raw.githubusercontent.com/Unitech/pm2/master/p
实战演练
新建一个ecosystem.config.js文件,基本配置如下,这里以koa2项目为例
module.exports = {
apps: [{
// Application #1
name: "project name",
script: "./bin/www.js",
out_file: "./log/blog-out.log",
log_date_format: "YYYY-MM-DD HH:mm Z",
error_file: "./log/blog-err.log",
merge_logs: true,
watch: true,
env: {
"NODE_ENV": "development",
"AWESOME_SERVICE_API_TOKEN": "xxx"
},
env_production: {
"NODE_ENV": "production"
},
ignore_watch : ["node_modules", "src/utils/data", "src/utils/docs","src/controllers/backtend/uploads","public","logs","log"],
}]
}
重点步骤详解
name:应用的名称,后续通过名称直接操作应用
script :执行的脚本,如原来 node start ./bin/www 那么这里就是"./bin/www.js"
watch:是否让pm2监视源码目录的变化,有变化自动重启启动
ignore_watch:忽略哪些目录不监控,根据个人情况配置
启动,配置好之后执行如下脚本
pm2 start ecosystem.config.js --env production
常用指令
pm2 list :列举所有应用
pm2 monit:开启监控面板
pm2 start|restart|stop|delete appname :开启、重启、停止、删除应用
pm2 flush:清空日志
pm2 logs:查看日志