宝塔面板部署 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 状态可视化,并处理了开机自启的系统级配置。
分步处理
按以下顺序操作,确保配置完整且可回滚。
步骤 1:确认运行环境
在面板【软件商店】-【已安装】中确认 Node.js 插件版本正常。若项目需要特定 Node 版本,在添加项目时单独选择,避免全局版本冲突。
步骤 2:配置项目路径
项目路径必须指向包含 package.json 的根目录。启动文件通常填写 app.js、index.js 或 server.js,需与实际代码入口一致。
步骤 3:设置环境变量
若项目依赖 NODE_ENV 等变量,在插件界面的【环境变量】栏添加。不要依赖本地 .env 文件,除非代码显式读取。
步骤 4:启动与日志
点击启动后,观察【日志】标签页。若出现错误堆栈,先检查端口是否被占用或依赖是否安装。
怎么验证是否生效
通过面板状态和 SSH 命令双重确认进程存活。
方法 1:面板状态检查
在 Node.js 项目列表页,状态栏应显示“运行中”。若显示“已停止”,点击右侧【日志】查看报错。
方法 2:SSH 命令验证
登录服务器终端,输入pm2 list。若能看到对应项目名且 status 为 online,说明守护进程已生效。
方法 3:故障模拟测试
在 SSH 中输入pm2 kill或手动杀死进程 ID,观察面板是否在数秒内自动将状态恢复为“运行中”。
常见坑
以下场景容易导致守护失效或启动失败,操作时需谨慎。
路径错误:项目路径填写了子文件夹而非根目录,导致 npm 依赖无法识别。
端口占用:多个 Node 项目配置了相同端口,后启动的项目会立即崩溃并进入重启循环。
依赖缺失:添加项目后未执行 npm install,直接启动会报模块找不到错误。
权限问题:项目文件归属 root 而运行用户为 www,可能导致日志写入失败。
常见问题
服务器重启后项目会自动运行吗
会。宝塔 Node.js 插件安装时会自动配置系统开机自启服务,无需额外设置。
手动用 PM2 命令启动和面板有什么区别
手动 PM2 启动后,面板无法管理状态和日志。建议统一通过面板操作,避免状态不同步。
进程一直重启怎么办
查看面板日志报错信息。常见原因是代码错误、端口冲突或内存不足,修复代码或释放资源后重新启动。