目录

pm2实战,让你的nodejs、koa2应用永远不会宕机

目录

为什么用?

  • 持久化:一旦开始使用,您的应用将达到持久化,在崩溃和机器重启时自启动。
  • 流程管理 : 您所有的应用都被守护进程
  • 日志管理 所有的应用日志都会保存到您的服务器硬盘中~/.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:查看日志