gost
gost copied to clipboard
远程端口转发不支持负载均衡
服务器A部署代理 服务器B,C,D,E,F部署远程端口转发到A 访问A时流量始终在B机器上
具体配置?
具体配置?
服务端A:
./gost -L relay://:7001?bind=true
客户端B,C,D,E
./gost -L rtcp://:30901/:9090 -F relay://A_IP:7001?nodelay=true
{"handler":"rtcp","kind":"service","level":"warning","listener":"rtcp","msg":"accept: bind on :8240/tcp failed, retrying in 1s","service":"service-0","time":"2023-12-27T12:04:59.387Z"}
看起来是只能一对一转发?
rtcp是一对一的端口映射,每个端口在服务端对应的会监听一个端口,如果在B,C,D,E上使用相同的命令,只会有一个成功。 如果需要负载均衡,有以下几种方案:
- 客户端负载均衡:只在一台机器上运行客户端(例如B),再转发到其他机器上
gost -L rtcp://:30901/B_IP:9090,C_IP:9090,D_IP:9090,E_IP:9090 -F relay://A_IP:7001?nodelay=true
- 服务端负载均衡:客户端的机器分别对应到服务端不同端口上,再在服务端运行一个反向代理服务来负载均衡到这些端口。
- 反向代理隧道。
rtcp是一对一的端口映射,每个端口在服务端对应的会监听一个端口,如果在B,C,D,E上使用相同的命令,只会有一个成功。 如果需要负载均衡,有以下几种方案:
- 客户端负载均衡:只在一台机器上运行客户端(例如B),再转发到其他机器上
gost -L rtcp://:30901/B_IP:9090,C_IP:9090,D_IP:9090,E_IP:9090 -F relay://A_IP:7001?nodelay=true
- 服务端负载均衡:客户端的机器分别对应到服务端不同端口上,再在服务端运行一个反向代理服务来负载均衡到这些端口。
- 反向代理隧道。 云原生部署反向代理隧道,如何通过直接访问svc ip来达到访问客户端的目的呢?我的客户端都是一样的服务
rtcp是一对一的端口映射,每个端口在服务端对应的会监听一个端口,如果在B,C,D,E上使用相同的命令,只会有一个成功。 如果需要负载均衡,有以下几种方案:
- 客户端负载均衡:只在一台机器上运行客户端(例如B),再转发到其他机器上
gost -L rtcp://:30901/B_IP:9090,C_IP:9090,D_IP:9090,E_IP:9090 -F relay://A_IP:7001?nodelay=true
- 服务端负载均衡:客户端的机器分别对应到服务端不同端口上,再在服务端运行一个反向代理服务来负载均衡到这些端口。
- 反向代理隧道。
大佬,试了下高可用反向代理隧道发现请求延迟加倍了
curl -w "\
time_namelookup: %{time_namelookup}s\n\
time_connect: %{time_connect}s\n\
time_appconnect: %{time_appconnect}s\n\
time_pretransfer: %{time_pretransfer}s\n\
time_redirect: %{time_redirect}s\n\
time_starttransfer: %{time_starttransfer}s\n\
----------\n\
time_total: %{time_total}s\n" \
-o /dev/null -s http://公网ip:9090/ping
time_namelookup: 0.000026s
time_connect: 0.183284s
time_appconnect: 0.000000s
time_pretransfer: 0.183344s
time_redirect: 0.000000s
time_starttransfer: 0.366931s
----------
time_total: 0.366984s
curl -w "\
time_namelookup: %{time_namelookup}s\n\
time_connect: %{time_connect}s\n\
time_appconnect: %{time_appconnect}s\n\
time_pretransfer: %{time_pretransfer}s\n\
time_redirect: %{time_redirect}s\n\
time_starttransfer: %{time_starttransfer}s\n\
----------\n\
time_total: %{time_total}s\n" \
-o /dev/null -s http://b7de88a94729b931.gost.local/ping
time_namelookup: 0.000280s
time_connect: 0.270444s
time_appconnect: 0.000000s
time_pretransfer: 0.270531s
time_redirect: 0.000000s
time_starttransfer: 1.248306s
----------
time_total: 1.518586s
如果你是直接使用文档中的配置来部署,需要修改gost-plugins的配置参数redis.expiration
,这里设置的隧道有效是1个小时。