在Node.js项目的生产环境部署中,进程管理与持久化运行是开发者必须面对的核心挑战。宝塔面板作为一款广受欢迎的服务器管理软件,以其可视化操作和丰富的功能模块,极大地简化了Linux服务器的运维复杂度。而PM2则是Node.js生态中最负盛名的进程管理工具,能够确保应用稳定运行并提供强大的监控功能。本教程将深入讲解如何在宝塔面板中,利用PM2高效、稳定地管理您的Node.js项目,实现从部署到运维的全流程覆盖。
在开始之前,请确保您已安装宝塔面板并成功部署了Node.js环境。宝塔面板的“软件商店”通常提供了一键安装Node.js的选项,这是后续步骤的基础。
通过SSH或宝塔面板的终端功能登录您的服务器。全局安装PM2是第一步,执行命令:
npm install pm2 -g
安装完成后,可以通过 pm2 --version 验证安装是否成功。
关键提示:为了确保PM2能在系统重启后自动恢复应用,需要执行初始化命令:
pm2 startuppm2 save
这一步会生成一个启动脚本,将当前PM2管理的应用列表保存并设置为开机自启。
安装项目依赖在文件管理器中进入项目根目录,打开终端,运行:
npm install --production
此命令将安装生产环境所需的依赖包。
核心管理操作如下:
启动应用:在项目根目录下,执行:
pm2 start app.js --name "my-node-app"
您也可以使用npm脚本:pm2 start npm --name "my-app" -- run start。--name参数为应用赋予一个别名,便于后续管理。
常用PM2命令:pm2 list:查看所有由PM2管理的应用状态列表。pm2 logs :实时查看指定应用的日志输出,对于调试和监控至关重要。pm2 restart :重启应用。pm2 stop :停止应用。pm2 delete :从PM2列表中删除应用。pm2 monit:打开一个直观的终端仪表盘,监控CPU、内存等资源使用情况。配置文件(生态系统文件):对于复杂项目,推荐使用配置文件来管理环境变量、实例数等参数。生成一个模板:
pm2 ecosystem
这会在当前目录生成一个 ecosystem.config.js 文件。您可以配置多个应用、设置环境变量、指定日志文件路径等。之后使用 pm2 start ecosystem.config.js 启动所有应用。
Node.js应用通常监听127.0.0.1:3000这类本地端口。为了让外网能够通过域名或IP访问,需要在宝塔面板中进行反向代理设置。
保存后,访问您的域名,流量将被自动转发至Node.js应用。
安全性增强:建议在宝塔面板的“安全”菜单中,放行Node.js应用监听的端口,同时在“防火墙”中仅允许必要的端口(如80, 443)对外开放,确保服务器安全。
日志管理:PM2的日志默认存放在 ~/.pm2/logs/ 目录下。您可以在宝塔的文件管理器中方便地查看和下载这些日志。在配置文件中,可以自定义日志的存储路径,便于归档和分析。性能监控与集群模式:PM2支持集群模式(Cluster Mode),可以充分利用多核CPU。启动时使用 -i max 参数:
pm2 start app.js -i max --name "my-cluster-app"
这将根据CPU核心数自动创建多个应用实例,显著提升并发处理能力。
与宝塔计划任务结合:可以设置宝塔的“计划任务”来定期执行PM2的日志轮转或特定维护脚本,实现自动化运维。
您已经掌握了在宝塔面板环境下,使用PM2部署、管理和监控Node.js项目的完整流程。这种组合将可视化管理的便捷性与命令行工具的强大能力完美结合,能够显著提升开发者的部署效率和项目的运行稳定性。