在前一篇文章中通过设定settings.js文件,配置出了Node-RED的管理员登录页面,这篇文章将就Node-RED的配置和设定的运行环境配置部分进行总结。
配置文件从哪里读出来,实际上在启动的时候启动日志中就会有详细的说明,比如使用官方镜像启动的Node-RED服务的启动日志中,可能有类似如下的日志信息:
5 Mar 09:14:18 - [info] Settings file : /data/settings.js
配置文件就是上述的这个settings.js。而这个文件最初来源于node-red的包下,比如镜像方式的情况下就是/usr/src/node-red/node_modules/node-red目录下的settings.js文件。
liumiaocn:~ liumiao$ docker exec -it nodered sh ~ $ cd node_modules/node-red ~/node_modules/node-red $ ls CHANGELOG.md LICENSE README.md bin lib package.json red.js settings.js ~/node_modules/node-red $ pwd /usr/src/node-red/node_modules/node-red ~/node_modules/node-red $
但是需要注意的是,官方镜像中运行态起作用的配置文件是/usr/src/node-red/node_modules/node-red,而使用npm本地安装的也会有所不同。
指定配置文件方式:也可以在启动时通过--settings使用指定的文件
运行环境配置根据官方文档,运行环境配置选项如下所示:
设定项:flowFile- 用途:用于保存Node-RED的flow的信息
- 缺省值:缺省名称为flows_hostname名称.json
- 用途:用于保存所有用户数据的目录,比如flow和所有的库数据等
- 缺省值:$HOME/.node-red
- 用途:Node-RED会在usrDir目录下进行nodes目录的搜索,nodesDir提供了一个附加的搜索目录,这样Node-RED的node可以被安装在Node-RED的安装结构之外。
- 缺省值:$HOME/.node-red/nodes
- 用途:仅用与Standalone方式的Node-RED服务,设定可用于监听的服务端地址。
- 缺省值:0.0.0.0,表明所有的地址均可
- 用途:提供UI编辑器页面的端口号
- 缺省值:1880
- 用途:UI编辑器页面的根目录,如果设定为false,所有管理相关的访问都失效,包括API和编辑器UI。
- 缺省值:/
- 用途:启动HTTP认证方式,这样在访问UI编辑器页面之前会有个登录页面。
- 设定示例:{user:“nol”, pass:“5f4dcc3b5aa765d61d8327deb882cf99”}
- 注意事项:已过时的设定项,可使用adminAuth替代。
pass的内容是对于实际密码的的md5的哈希取值,可使用如下命令获取:
node -e “console.log(require(‘crypto’).createHash(‘md5’).update(‘登录的密密码字符串’,‘utf8’).digest(‘hex’))”
设定项:httpNodeRoot- 用途:指定缺省的HTTP访问的根URL,设定为false时,所有基于node的HTTP访问都会失效
- 缺省值:/
- 用途:httpNodeAuth
- 缺省值:启用HTTP认证,可参照httpAdminAuth的格式
- 用途:httpRoot
- 缺省值:设定admin和node访问的根URL,相当于同时设定httpAdminRoot和httpNodeRoot
- 用途:相关内容可参看:详细内容
- 缺省值:被注释
具体设定可使用如下格式设定密钥和证书
https: { key: fs.readFileSync('privatekey.pem'), cert: fs.readFileSync('certificate.pem') },设定项:disableEditor
- 用途:仅禁用UI编辑器,管理访问仍然可用。
- 缺省值:false
- 用途:静态web内容所使用的本地目录,注意此项的设定需要结合httpAdminRoot的设定。
- 缺省值:被注释
- 使用示例:/home/nol/node-red-static/
- 用途:httpStaticAuth
- 缺省值:对于静态内容启动HTTP认证
- 用途:启用跨域资源共享,详细可参看:CORS设定
- 缺省值:被注释
- 使用示例:
httpNodeCors: { origin: "*", methods: "GET,PUT,POST,DELETE" },设定项:httpNodeMiddleware
- 用途:可以根据node的需要添加自定义的功能,详细的格式可参看:使用方式
- 缺省值:被注释
- 使用示例
httpNodeMiddleware: function(req,res,next) { // Perform any processing on the request. // Be sure to call next() if the request should be passed // to the relevant HTTP In node. }设定项:logging
- 用途:日志,但是需要注意的是当前只支持控制台日志输出
- 缺省值:日志级别的确认level是info
- 日志级别:主要如下所示 fatal - 仅记录应用不可用相关的错误 error - 记录fatal信息和错误信息 warn - 记录警告信息、错误信息和fatal信息 info - 记录普通信息以及警告信息、错误信息以及fatal信息 debug - 记录调试信息、普通信息以及警告信息、错误信息以及fatal信息