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
Uh oh!
There was an error while loading. Please reload this page.
-
分析了一下刚出的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