RPC接口无法通过NGINX反向代理工作

时间:2018-08-01 12:22:26

标签: nginx blockchain ethereum web3 geth

我目前正在与geth一起创建私有区块链。要直接启用来自浏览器的调用,我需要在geth上启用ssl支持。我使用NGINX创建了一个反向代理,将https调用重定向到http调用。

将在我的计算机内对https://mydomain/chain进行呼叫,并将其重定向到http://localhost:8080

我的问题是我实际上可以通过HTTP与RPC接口进行交互(在http://mydomain:8080处,但是每当我尝试使用web3通过HTTPS调用时,我都会得到Invalid JSON RPC response: ""

注意:Metamask实际上可以通过HTTPS进行事务。

我的NGINX配置为:

server {
    listen       443;
    server_name  localhost;

    ssl                  on;
    ssl_certificate      /home/ubuntu/keys/server.crt;
    ssl_certificate_key  /home/ubuntu/keys/server.key;
    ssl_session_timeout  5m;

    location /chain {
      proxy_pass          http://localhost:8080/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    }
}

简单呼叫失败:     const Web3 = require('web3');

const provider = "https://52.47.74.162/chain"

let web3 = new Web3(new Web3.providers.HttpProvider(provider));

web3.eth.getBalance("0x1bb9747d9779270d26f04672904e338BBDc90089")
.then(s => console.log(s))
.catch(e => console.log(e))

我开始使用geth --rpc --rpcport 8080 --rpccorsdomain '*' --datadir data/ --identity 'MyPrivateBlockchain' --rpcaddr 0.0.0.0 --rpcapi 'net,web3,eth,personal,json' --port 30303 --networkid 12344321 --rpcvhosts=*

我不知道它在哪一部分上失败了, 预先感谢。

0 个答案:

没有答案