一、环境准备,NodeJs安装

nodejs不是本文的重点,略过

二、Node-red安装

1、我们的安装环境是centos7
2、执行如下命令安装

<code class="language-plain has-numbering hljs" id="code_id_0">cnpm install -g node-red</code>
  • 1.

3、户动

<code class="language-plain has-numbering hljs" id="code_id_1">node-red</code>
  • 1.

 http://127.0.0.1:1880便可以访问Node-RED的前台界面,进行编程 但现在的情况是,不需要密码便能访问,这样对外网及不安全,所以我们通过nginx代理转发,加用户名及密码验证,如果不需要此功能的,可不往下看
4、修改node-red访问的根路径为/node-red

<code class="language-plain has-numbering hljs" id="code_id_2">cd  #进入当前用户的根路径
ls -al

dr-xr-x---. 13 root root  4096 Aug 11 10:14 .
dr-xr-xr-x. 21 root root  4096 Jul 16 15:04 ..
-rw-r--r--   1 root root 15955 Aug 11 11:13 .bash_history
-rw-r--r--.  1 root root    18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root   176 Dec 29  2013 .bash_profile
drwxr-xr-x   3 root root  4096 Aug 11 10:12 .node-gyp
drwxr-xr-x   4 root root  4096 Aug 11 11:12 .node-red</code>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

可以看到.node-red的目录,注意有个点

<code class="language-plain has-numbering hljs" id="code_id_3">cd .node-red
vim settings.js</code>
  • 1.
  • 2.

关键地方修改

<code class="language-plain has-numbering hljs" id="code_id_4">httpAdminRoot: '/node-red',</code>
  • 1.

这个时间重启,访问路径就变为:http://127.0.0.1:1880/node-red,有了根路径,方便nginx代理

三、nginx 代理配置

1、nginx安装

<code class="language-plain has-numbering hljs" id="code_id_5">yum -y install nginx
yum  -y install httpd-tools</code>
  • 1.
  • 2.

2、密码配置,添加用户名为admin的,然后输入密码为admin

<code class="language-plain has-numbering hljs" id="code_id_6">htpasswd  -c -d /etc/nginx/conf.d/passwd admin
cd /etc/nginx/conf.d/
vim  default.conf</code>
  • 1.
  • 2.
  • 3.

3、nginx配置如下

<code class="language-plain has-numbering hljs" id="code_id_7">location /node-red/comms {
        proxy_pass http://server15:1880;
        proxy_read_timeout 300s;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;             
        proxy_set_header Connection "upgrade";
    }
location /node-red {
        proxy_pass http://node-red安装的机器ip:1880;
        auth_basic "Please input username and password";  
        auth_basic_user_file /etc/nginx/conf.d/passwd; 
        autoindex on;
        autoindex_exact_size on;
        autoindex_localtime on;
    }</code>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

说明:
/node-red/comms:代理的是ws
/node-red:代理的是http
现在就可以通过如下地址进行访问,并要求输入用户名及密码admin/admin

<code class="language-plain has-numbering hljs" id="code_id_8">http://ip:nginx的端口/node-red</code>
  • 1.