PM2 是一个守护进程管理器,可以用它来管理你的node进程,负责所有正在运行的进程,并查看node进程的状态,也支持性能监控,负载均衡等功能。使用起来也是非常简单
一 特性
- 日志管理:收集日志,并有插件配合进行管理
- 负载均衡:减轻服务器压力
- 终端监控:可以在终端中监控您的应用程序并检查应用程序运行状况
- 静态服务:支持静态服务器功能
- 集成管理:多个进程,不同环境,统一配置
- SSH部署:自动部署,避免在所有服务器中进行ssh
二 安装
我们可以通过 NPM 或 Yarn 安装,在安装之前需要安装 Node.js 和 NPM,您可以使用 NVM 来管理Node环境。
三 上手使用
最近由于小程序云开发规则的调整,不得不把之前用云开发的项目重构,这里我们用 Nest 项目讲解。关于 Nest 教程,翻看历史记录可以找到。Nest 是基于 Node.js 服务器端应用程序的 WEB 应用框架,可以很轻松的编写 API 接口。
PM2安装完成,查看版本号
可以看出已经安装成功,接下来就是把 Nest 开发的项目部署到服务器上。
首先把整个项目(不是打包后的,至于为什么请看【Nest教程】Nest项目部署在ubuntu服务器)通过 FTP 上传到服务器指定目录,再进入项目根目录安装依赖之后再打包,生成 dist 文件。
1 启动项目
我的项目启动文件是 main.js。用 PM2 启动方式如下
查看启动结果
2 查看日志
此时屏幕上会同时输出 error log 和 实时 log , 同时会打印出日志文件的路径。如果想查询指定日志,用 tail 命令即可。
日志其他操作
3 停止项目
4 重启项目
5 删除项目
四 高级用法
1 重命名
2 监听
3 集群模式
4 开机自启
5 环境切换
PM2 通过 env 选项声明多个环境配置,规则如下 env 为默认的环境配置(生产环境),env_dev、env_test则分别是开发、测试环境。可以通过process.env.REMOTE_ADDR等来读取配置中的环境变量。
启动指定环境也很简单
6 帮助
通过 -- help 命令可以看到 PM2 支持的子命令还是蛮多的,可以自己查询用法,也可以去官网查看详细文档。