splithttp协议下基于nginx的多服务器负载均衡方式 #3480
christarcher
started this conversation in
Ideas
Replies: 3 comments 7 replies
-
首先你根据 UUID 来路由的话,鉴于一个 UUID 就是一个连接,用 Xray 就能实现这样的负载均衡,其次 WS 也能用这样的负载均衡 |
Beta Was this translation helpful? Give feedback.
0 replies
-
就是说精神可嘉,但没看懂为什么非要 nginx,VLESS 出站的 clients 多写几个或者用路由的 balancer 都比插个 nginx 进来更高效 |
Beta Was this translation helpful? Give feedback.
7 replies
-
还有目前只写一个 VLESS 出站且 clients 只有一个的话,SplitHTTP 的 H2 默认会有多路复用,对多线程测速不友好,以后可以设 concurrency |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
分析了一下刚出的splithttp协议,它使用http post和get来传输
它不同于像ws这种流,实现负载均衡可以是基于单个连接的
xray本身支持负载均衡.nginx的可控性更高,负载均衡的选择也更多,消耗也更低(因为不需要真正的解析流量和路由)
如果说预算够的,当然可以架设一台中间服务器用来分配流量
这里只是验证可行性,踩了一些坑和一些想法写在这里
如果使用ip_hash策略,针对同一个用户只能导向同一个出口,这个策略机场可以使用,但个人没必要
而如果使用基于轮询或者权重的策略,问题就在于,splithttp(1.8.16)的格式是 POST /{UUID}/{Seq}
同一个uuid(即同一个连接),被发给了不同的服务器出口就会造成问题,所以均衡策略的hash应该根据uuid来
下面使用正则来匹配uuid,作为负载策略的判定
我感觉使用workers来实现这样的负载均衡比较困难,因为可能会命中不同的worker实例,无法判定流量到底该发给哪一个.
场景:两个搭建了splithttp的落地机,一个vps.
经过简单的测试,两台服务器都可以正常收到请求并处理
多线程测速:
只使用1台服务器作为出口的情况下只能跑到60mbps左右,vps带宽是100mbps,针对多线程下载还是有提速效果的.
Beta Was this translation helpful? Give feedback.
All reactions