在生产环境下,我们不会直接运行node
,而是通过pm2>
来管理应用。
为什么要用pm2?它能解决以下几个关键问题:
当Node应用崩溃时,需要自动重启。pm2可以监控并自动完成这项任务。
Node应用的日志默认只输出到控制台,但通过pm2,我们可以将日志分类保存到不同的文件中。
由于Node是单线程的,而服务器通常是多核CPU,pm2可以帮助我们启动多个进程来充分利用服务器性能。
对于线上应用,我们需要监控CPU、内存等资源的使用情况,pm2提供了完整的监控功能。
总的来说,一个生产环境的Node应用需要自动重启、日志、多进程、监控等功能,而pm2正好提供了这些必要的特性。
pm2(进程管理) 的主要功能就是进程管理、日志管理、负载均衡、性能监控这些 首先安装 pm2:
npm i -g pm2
随便跑一个node应用,我这里跑一个Nest应用: 直接 node 跑是这样的,日志打印在控制台:
而用 pm2 的话,就可以这样跑:
pm2 start ./dist/main.js
它会把这个 node 进程跑起来,然后管理起来:
管理起来之后,就有我们上面说的那些功能了,比如自动重启、日志管理、性能监控等 首先查看日志
pm2 logs
可以看到 pm2会把所有进程的日志打印出来,通过前面的进程id|进程名字来区分,比如 0|main