宝塔面板部署 Node 项目如何配置进程守护自动重启

文章导读
宝塔面板部署 Node 项目配置进程守护自动重启,最推荐直接使用面板自带的"Node.js 项目”插件。该插件底层基于 PM2 管理进程,适合大多数常规 Web 服务场景,风险边界在于需确保 Node 版本与项目依赖兼容。
📋 目录
  1. 快速处理思路
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
A A

宝塔面板部署 Node 项目配置进程守护自动重启,最推荐直接使用面板自带的"Node.js 项目”插件。该插件底层基于 PM2 管理进程,适合大多数常规 Web 服务场景,风险边界在于需确保 Node 版本与项目依赖兼容。

先说结论:优先使用面板插件托管,避免手动配置 PM2 导致面板状态不同步。

  • 适合:宝塔面板环境下的 Node 应用
  • 先准备:安装 Node.js 插件及对应运行版本
  • 验收:面板显示运行中且 SSH 进程存活

快速处理思路

通过面板图形界面完成配置,无需手动编写 systemd 或 PM2 启动脚本。

1. 登录宝塔面板,进入【软件商店】。

2. 搜索"Node.js",找到"Node.js 项目”插件并安装。

3. 在插件界面点击【添加 Node 项目】,填写项目名、项目路径、启动文件。

4. 选择 Node 版本,点击【启动】,插件会自动配置守护进程。

为什么会这样

进程守护的核心是防止意外退出后服务中断。

宝塔 Node.js 插件底层调用 PM2 工具,PM2 具备内置的进程监控机制,当检测到 Node 进程崩溃或退出时,会自动尝试重启。面板插件进一步将 PM2 状态可视化,并处理了开机自启的系统级配置。

宝塔面板部署 Node 项目如何配置进程守护自动重启

分步处理

按以下顺序操作,确保配置完整且可回滚。

步骤 1:确认运行环境

在面板【软件商店】-【已安装】中确认 Node.js 插件版本正常。若项目需要特定 Node 版本,在添加项目时单独选择,避免全局版本冲突。

步骤 2:配置项目路径

项目路径必须指向包含 package.json 的根目录。启动文件通常填写 app.js、index.js 或 server.js,需与实际代码入口一致。

步骤 3:设置环境变量

若项目依赖 NODE_ENV 等变量,在插件界面的【环境变量】栏添加。不要依赖本地 .env 文件,除非代码显式读取。

步骤 4:启动与日志

宝塔面板部署 Node 项目如何配置进程守护自动重启

点击启动后,观察【日志】标签页。若出现错误堆栈,先检查端口是否被占用或依赖是否安装。

怎么验证是否生效

通过面板状态和 SSH 命令双重确认进程存活。

方法 1:面板状态检查

在 Node.js 项目列表页,状态栏应显示“运行中”。若显示“已停止”,点击右侧【日志】查看报错。

方法 2:SSH 命令验证

登录服务器终端,输入pm2 list。若能看到对应项目名且 status 为 online,说明守护进程已生效。

方法 3:故障模拟测试

在 SSH 中输入pm2 kill或手动杀死进程 ID,观察面板是否在数秒内自动将状态恢复为“运行中”。

宝塔面板部署 Node 项目如何配置进程守护自动重启

常见坑

以下场景容易导致守护失效或启动失败,操作时需谨慎。

路径错误:项目路径填写了子文件夹而非根目录,导致 npm 依赖无法识别。

端口占用:多个 Node 项目配置了相同端口,后启动的项目会立即崩溃并进入重启循环。

依赖缺失:添加项目后未执行 npm install,直接启动会报模块找不到错误。

权限问题:项目文件归属 root 而运行用户为 www,可能导致日志写入失败。

常见问题

服务器重启后项目会自动运行吗

会。宝塔 Node.js 插件安装时会自动配置系统开机自启服务,无需额外设置。

手动用 PM2 命令启动和面板有什么区别

手动 PM2 启动后,面板无法管理状态和日志。建议统一通过面板操作,避免状态不同步。

进程一直重启怎么办

查看面板日志报错信息。常见原因是代码错误、端口冲突或内存不足,修复代码或释放资源后重新启动。