一、PM2 简介
PM2 是一个带有负载均衡功能的 Node.js 应用程序的进程管理器。它可以让你的 Node.js 应用程序始终保持运行状态,即使出现错误或服务器重启也能自动恢复。同时,它还提供了诸如日志管理、性能监控等实用功能,极大地简化了 Node.js 项目的部署和运维工作。
二、安装 PM2
在开始使用 PM2 之前,确保你已经安装了 Node.js 和 npm(Node.js 的包管理器)。如果尚未安装,可以从 Node.js 官方网站(Node.js — Run JavaScript Everywhere)下载并安装。
安装 PM2 非常简单,只需在终端中运行以下命令:
npm install -g pm2
-g标志表示全局安装,这样你可以在任何目录下使用pm2命令。
三、使用 PM2 管理 Node.js 项目
(一)启动应用
假设你有一个名为myapp.js的 Node.js 应用,要使用 PM2 启动它,只需在项目目录下运行:
pm2 start myapp.js
PM2 会自动检测应用类型(Node.js)并启动进程。你还可以为应用指定一个名称,方便后续管理,例如:
pm2 start myapp.js --name my-app
(二)查看进程状态
使用以下命令查看当前由 PM2 管理的所有进程状态:
pm2 list
这将列出每个进程的 ID、名称、状态(如运行中、已停止等)、CPU 和内存使用情况等信息。
(三)停止和重启进程
停止指定名称或 ID 的进程:
pm2 stop my-app
# 或者通过ID停止
pm2 stop <process_id>
重启进程:
pm2 restart my - cool - app
# 或者通过ID重启
pm2 restart <process_id>
如果要停止或重启所有进程,可以使用:
pm2 stop all
pm2 restart all
(四)日志管理
PM2 会自动为每个应用程序创建日志文件。你可以通过以下命令查看应用的日志:
pm2 logs my-app
这将实时输出应用的标准输出(stdout)和标准错误(stderr)日志。如果只想查看错误日志,可以使用:
pm2 logs my-app --err
(五)应用程序监控
PM2 提供了简单的监控功能,帮助你了解应用的运行状况。运行以下命令可以查看应用的 CPU 和内存使用情况:
pm2 monit
这将以交互式界面展示每个进程的资源使用情况,方便你实时监控应用性能。
四、PM2 在项目部署中的应用
(一)部署到服务器
- 准备服务器:确保服务器已经安装了 Node.js 和 PM2。你可以按照前面的安装步骤在服务器上进行安装。
- 上传项目代码:将你的 Node.js 项目代码通过 FTP、SCP 等方式上传到服务器的指定目录。
- 安装项目依赖:进入项目目录,运行npm install安装项目所需的依赖包。
- 启动应用:在项目目录下使用pm2 start命令启动你的 Node.js 应用,就像在本地开发环境中一样。
(二)实现自动重启
在生产环境中,确保应用程序在出现错误或服务器重启时能够自动恢复非常重要。PM2 默认会在应用崩溃时自动重启应用。此外,你还可以配置 PM2 在服务器启动时自动启动所有管理的进程。
运行以下命令将 PM2 设置为开机自启:
pm2 startup
该命令会根据你的服务器操作系统生成相应的启动脚本,并提示你运行一个命令来完成配置。按照提示运行即可。
(三)负载均衡
PM2 的负载均衡功能可以充分利用多核 CPU 的性能,提高应用的并发处理能力。假设你的服务器有 4 个 CPU 核心,要启动 4 个实例来实现负载均衡,可以这样做:
pm2 start myapp.js -i 4
-i参数指定了要启动的实例数量,-i 0表示根据 CPU 核心数自动启动相应数量的实例。
-i参数指定了要启动的实例数量,-i 0表示根据 CPU 核心数自动启动相应数量的实例。
五、总结
通过本文,我们了解了 PM2 在 Node.js 项目中的基本使用方法和在项目部署中的应用技巧。PM2 能够极大地提高 Node.js 应用的稳定性和可维护性,帮助开发者更高效地管理和部署项目。希望这些内容能对你在 Node.js 开发和运维过程中有所帮助,让你更轻松地应对项目中的各种挑战。