zoukankan      html  css  js  c++  java
  • 区块链节点网络的nginx转发部署

    安装nginx

    sudo apt-get install nginx

    查看nginx安装是否带with-stream参数

    nginx -V |grep with-stream

    有with-stream参数,可以代理tcp协议。区块链节点间的P2P通讯协议为TCP,所以nginx需要用支持TCP转发的版本

     

    修改nginx主配置文件

    vim /etc/nginx/nginx.conf

    在文件后添加,示例为两个区块链节点之间转发的配置

    stream{
      upstream node1{
          server 192.168.6.226:26656 max_fails=3 fail_timeout=10s;
      }
      upstream node2{
          server 192.168.6.227:26656 max_fails=3 fail_timeout=10s;
      }
      server{
          listen 10001;
          proxy_connect_timeout 20s;
          proxy_timeout 5m;
          proxy_pass node1;
      }
      server{
          listen 10002;
          proxy_connect_timeout 20s;
          proxy_timeout 5m;
          proxy_pass node2;
      }
    }

    其中10001,10002,加上nginx所在服务器的ip,配置给区块链节点的对外地址。种子节点的地址也要配置为nignx的地址加分配的端口。

    例如:nginx主机ip为 192.168.6.228 开放10001,10002给节点node1,node2。

    node1主机ip为 192.168.6.226 开放 26656, 其config.toml的 external_address = "192.168.6.228:10001"

    node2主机ip为 192.168.6.227 开放 26656,其config.toml的 external_address = "192.168.6.228:10002",

    seeds = "541dba3eba349e73477d1e9b61186b75d524eebe@192.168.6.228:10001"

     

    测试配置文件是否正确

    nginx -t -c /etc/nginx/nginx.conf

    启动nginx服务

    systemctl start nginx.service

    查看启动的nginx服务

    systemctl status nginx.service

     

    若出现 nginx Failed to read PID from file /run/nginx.pid: Invalid argument 的报错,

    mkdir -p /etc/systemd/system/nginx.service.d
    printf "[Service] ExecStartPost=/bin/sleep 0.1 " > /etc/systemd/system/nginx.service.d/override.conf

    然后

    systemctl daemon-reload
    systemctl restart nginx.service

     

    测试nginx的连通性

    $ telnet 192.168.6.228 10001
    Trying 192.168.6.228...
    Connected to 192.168.6.228.
    Escape character is '^]'.

    出现"Connected to 192.168.6.228",说明连接成功

     

    ----------------陌上阡头,草长莺飞----------------- https://www.cnblogs.com/tyche116/
  • 相关阅读:
    10天掌握webpack 4.0 Html 插件
    10天掌握webpack 4.0 服务篇
    spring boot 国际化信息
    Java 编程下使用 Class.forName() 加载类
    Java 编程下正则表达式判断字符串是否包含中文
    Adb connection Error:远程主机强迫关闭了一个现有的连接 解决方法
    Java 编程下简介 Class 与类加载
    通过htaccess文件配置多个一级域名指向根目录的子文件夹
    apache httpd.conf
    composer安装laravel框架时未生成Vendor解决办法
  • 原文地址:https://www.cnblogs.com/tyche116/p/14467228.html
Copyright © 2011-2022 走看看