因?yàn)锽TS有很多開放的公共節(jié)點(diǎn)谤专,可以直接使用公共節(jié)點(diǎn)躁锡,并用nginx的反向代理和負(fù)載均衡方案來盡可能保障訪問公共節(jié)點(diǎn)時(shí)的穩(wěn)定性。
目前已發(fā)現(xiàn)的BTS可用公共節(jié)點(diǎn):
國內(nèi)(已測(cè)試置侍,可以使用):
1映之、wss://btsapi.topnewdata.com/ws (wss可換成https)
2、wss://ws.gdex.top 或 wss://ws.gdex.top/ws (wss可換成https)
3蜡坊、wss://bitshares.dacplay.org/ws (wss可換成https)
4杠输、wss://bitshares-api.wancloud.io/ws (wss可換成https)
國外(已測(cè)試,可以使用秕衙,但海外速度訪問較慢蠢甲,可作為備用節(jié)點(diǎn)):
1、wss://bit.btsabc.org/ws (香港) (wss可換成https)
2据忘、wss://dex.rnglab.org/ws (荷蘭) (wss可換成https)
3鹦牛、wss://dexnode.net/ws (美國) (wss可換成https)
4、wss://la.dexnode.net/ws (美國) (wss可換成https)
每個(gè)BTS節(jié)點(diǎn)作為一個(gè)虛擬主機(jī)若河,并反向代理到對(duì)應(yīng)的BTS節(jié)點(diǎn)的https接口。
比如9001端口直接反向代理到https://btsapi.topnewdata.com/ws
server {
listen 9001;
server_name localhost;
location / {
proxy_pass https://btsapi.topnewdata.com/ws;
}
}
這里共有八個(gè)BTS節(jié)點(diǎn)寞宫,所以新建8個(gè)虛擬主機(jī)伦忠,端口從9001到9008.
使用nginx的負(fù)載均衡機(jī)制豺鼻,配置upstream,其中9005到9008為國外的BTS節(jié)點(diǎn)虛擬主機(jī)梳庆,設(shè)置為backup,表示備用節(jié)點(diǎn)(當(dāng)9001到9004的主節(jié)點(diǎn)down掉或者訪問繁忙的時(shí)候便啟用備用節(jié)點(diǎn))
upstream bts_common_server {
least_conn;
server localhost:9001;
server localhost:9002;
server localhost:9003;
server localhost:9004;
server localhost:9005 backup;
server localhost:9006 backup;
server localhost:9007 backup;
server localhost:9008 backup;
}
創(chuàng)建9000端口的虛擬主機(jī)崇棠,反向代理到bts_common_server
server {
listen 9000;
server_name localhost;
location / {
proxy_pass http://bts_common_server;
}
}
重啟nginx服務(wù)
systemctl restart nginx.service。
至此,完成BTS公共節(jié)點(diǎn)負(fù)載均衡的配置坝辫。訪問使用時(shí)直接使用http://192.168.0.128:9000即可。
curl --data '{"jsonrpc": "2.0", "method": "call", "params": ["database", "get_account_by_name", ["oflyhigh"]], "id": 1}' [http://192.168.0.128:9000](http://192.168.0.128:9000/)
附完整配置:
upstream bts_common_server {
least_conn;
server localhost:9001;
server localhost:9002;
server localhost:9003;
server localhost:9004;
server localhost:9005 backup;
server localhost:9006 backup;
server localhost:9007 backup;
server localhost:9008 backup;
}
server {
listen 9000;
server_name localhost;
location / {
proxy_pass http://bts_common_server;
}
}
server {
listen 9001;
server_name localhost;
location / {
proxy_pass https://btsapi.topnewdata.com/ws;
}
}
server {
listen 9002;
server_name localhost;
location / {
proxy_pass https://ws.gdex.top/ws;
}
}
server {
listen 9003;
server_name localhost;
location / {
proxy_pass https://bitshares.dacplay.org/ws;
}
}
server {
listen 9004;
server_name localhost;
location / {
proxy_pass https://bitshares-api.wancloud.io/ws;
}
}
server {
listen 9005;
server_name localhost;
location / {
proxy_pass https://bit.btsabc.org/ws;
}
}
server {
listen 9006;
server_name localhost;
location / {
proxy_pass https://dex.rnglab.org/ws;
}
}
server {
listen 9007;
server_name localhost;
location / {
proxy_pass https://dexnode.net/ws;
}
}
server {
listen 9008;
server_name localhost;
location / {
proxy_pass https://la.dexnode.net/ws;
}
}
參考資料:
https://www.btspad.com/node
https://juejin.im/post/5adc425f518825670f7b6fc8