当前位置:网站首页>浅析PM2实用入门指南
浅析PM2实用入门指南
2022-08-02 14:31:00 【InfoQ】
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 支持的子命令还是蛮多的,可以自己查询用法,也可以去官网查看详细文档。
边栏推荐
猜你喜欢
随机推荐
PAT甲级 1019 普通回文数
语音直播系统——做好敏感词汇屏蔽打造绿色社交环境
scroll、offset、client事件的用法及区别
HDU1561 树形背包dp+边界优化 0ms过题
2022-07-26 第六小组 瞒春 学习笔记
遍历堆 PAT甲级 1155 堆路径
状态码以及访问百度过程
Wigner-Ville distribution for time-frequency analysis
Redis6
Traverse Heap PAT Class A 1155 Heap Path
2022-07-19 第五小组 瞒春 学习笔记
【go-zero】go-zero 框架踩坑指南 Q&A (持续更新中)
PAT甲级 1143 最低公共祖先
为什么四个字节的float表示的范围比八个字节的long要广?
【无标题】
mysql 自动添加创建时间、更新时间
【数据知多少】一文学懂通过Tushare、AKshare、baostock、Ashare、Pytdx获取股票行情数据(含代码)
es6 循环,并终止循环
为什么四个字节的float表示的范围比八个字节的long要广?
2022-07-20 第六小组 瞒春 学习笔记