前言

在生产环境下,我们不会直接运行node,而是通过pm2>来管理应用。 为什么要用pm2?它能解决以下几个关键问题:

当Node应用崩溃时,需要自动重启。pm2可以监控并自动完成这项任务。

Node应用的日志默认只输出到控制台,但通过pm2,我们可以将日分类保存到不同的文件中。

由于Node是单线程的,而服务器通常是多核CPU,pm2可以帮助我们启动多个进程来充分利用服务器性能。

对于线上应用,我们需要监控CPU、内存等资源的使用情况,pm2提供了完整的监控功能。

总的来说,一个生产环境的Node应用需要自动重启、日志、多进程、监控等功能,而pm2正好提供了这些必要的特性。

日志管理

pm2(进程管理) 的主要功能就是进程管理、日志管理、负载均衡、性能监控这些 首先安装 pm2:

npm i -g pm2

随便跑一个node应用,我这里跑一个Nest应用: 直接 node 跑是这样的,日志打印在控制台:

Untitled

而用 pm2 的话,就可以这样跑:

pm2 start ./dist/main.js

它会把这个 node 进程跑起来,然后管理起来:

Untitled

管理起来之后,就有我们上面说的那些功能了,比如自动重启、日志管理、性能监控等 首先查看日志

pm2 logs

Untitled

可以看到 pm2会把所有进程的日志打印出来,通过前面的进程id|进程名字来区分,比如 0|main