Nginx 安装
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
tar -zxvf nginx-1.12.0.tar.gz
yum install gcc-c++
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
yum install -y pcre pcre-devel
./configure
make
make install
默认安装的位置为/usr/local/nginx
修改nginx配置文件
location ~ ^/([0-9]+)(/.*)$ {
set $myuri $2;
set $myargs $args;
proxy_buffers 16 4k;
proxy_buffer_size 2k;
proxy_pass http://191.168.6.115:$1$myuri$is_args$myargs;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
上述配置采用正则表达式的方式获取动态的端口和其他参数,分别设置到myrui和myargs上,然后再proxy_pass中进行调用,达到了动态切换端口的目的,这样每一个node-red实例对应的端口就可以进行统一代理了。
为了解决代理后连接中断需要设置后面的
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
使用pm2启动多实例node-red
pm2 start /opt/node-red/node-red/node_modules/node-red/red.js -n red -f -- -p 1881 -u /opt/red
pm2 start /opt/node-red/node-red/node_modules/node-red/red.js -n red1 -f -- -p 1882 -u /opt/red1
访问实例
访问red:http://191.168.6.115/1881/ 访问red1:http://191.168.6.115/1882/ 其中1881和1882分别是两个实例的端口,这两个端口被nginx代理到了80端口下
|