pm2实战,让你的nodejs、koa2应用永远不会宕机
目录
- 更多分享:www.catbro.cn
为什么用?
- 持久化:一旦开始使用,您的应用将达到持久化,在崩溃和机器重启时自启动。
- 流程管理 : 您所有的应用都被守护进程
- 日志管理 所有的应用日志都会保存到您的服务器硬盘中~/.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:查看日志