如何在同一Node-RED实例中同时运行两个项目
如何原生实现多个Node-RED项目同时运行
Node-RED默认单实例仅能加载一个项目,要实现两个独立项目同时运行,核心方案是启动多个完全隔离的Node-RED实例,每个实例对应一个项目,通过配置文件、端口等参数实现环境隔离,具体步骤如下:
1. 为每个项目创建独立的工作环境
- 为两个项目分别建立独立的目录,比如:
- 项目A:
~/node-red-projects/project-a - 项目B:
~/node-red-projects/project-b
- 项目A:
- 为每个目录初始化Node-RED配置:进入对应目录,运行
node-red init生成专属的settings.js配置文件;或者复制系统默认的settings.js到目标目录再修改。 - 修改每个
settings.js中的关键隔离参数:uiPort:设置不同的访问端口,比如项目A用1880,项目B用1881,避免端口冲突userDir:指定当前项目的工作目录(需指向对应项目的文件夹,确保实例仅加载该项目的资源)- 可选:
httpAdminRoot,设置不同的管理后台路径(如/admin-a),如果想用同一端口区分实例,但更推荐用不同端口实现完全隔离
2. 启动独立实例
- 启动项目A:进入
project-a目录,运行node-red --settings settings.js - 启动项目B:进入
project-b目录,运行node-red --settings settings.js - 也可以直接用绝对路径启动,无需切换目录:
node-red --settings ~/node-red-projects/project-b/settings.js
3. 保持Git版本追踪独立
每个项目目录下单独关联对应的Git仓库即可,两个实例的运行环境完全隔离,版本管理操作互不影响。
4. 可选:用进程管理工具后台运行
如果需要长期后台运行,可使用pm2这类工具:
- 安装pm2:
npm install pm2 -g - 启动项目A:
pm2 start node-red --name "node-red-project-a" -- --settings ~/node-red-projects/project-a/settings.js - 启动项目B:
pm2 start node-red --name "node-red-project-b" -- --settings ~/node-red-projects/project-b/settings.js - 后续可通过
pm2 list查看状态、pm2 logs查看运行日志
注意事项
- 确保每个实例的端口不重复,否则会导致启动失败
- 自定义节点可选择全局安装(所有实例共享)或单独安装到对应项目目录的
node_modules下(仅当前实例可用) - 每个实例独立运行,切换操作某一项目时不会影响另一个实例的运行状态
内容的提问来源于stack exchange,提问作者eden881
相关产品推荐
相关产品推荐

