![在同一个数据中心的不同虚拟机上平衡多个 sock5 代理的最佳方法是什么?](https://linux22.com/image/802443/%E5%9C%A8%E5%90%8C%E4%B8%80%E4%B8%AA%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83%E7%9A%84%E4%B8%8D%E5%90%8C%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%8A%E5%B9%B3%E8%A1%A1%E5%A4%9A%E4%B8%AA%20sock5%20%E4%BB%A3%E7%90%86%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我目前正在尝试找出为我的新项目平衡多个 sock 5 代理服务器负载的最佳方法。我研究过 HA 代理之类的程序,但它似乎只能平衡 HTTP 代理的负载,而对于这个项目,我需要 Sock5。我研究过 DNS 轮询,但我还没有找到一种方法让它立即故障转移到其他服务器之一或将它们从轮换中移除。我还发现,当一台服务器离线时,TTL 更新速度不够快,无法无缝切换到另一台服务器。这确实困扰了我一段时间,我发现很难解释我的情况,因为我对负载平衡和防止用户故障的经验很少,因为我的项目最近才开始受到关注。如果我刚刚发布的内容似乎毫无意义,我会在下面制作一个图表来说明我正在尝试配置的内容。
所以基本上我正在寻找的是一种解决方案,可以有效地对 sock5 代理进行负载平衡,同时删除离线的服务器。 http://puu.sh/3mLvL/6ef73d46d4.png
答案1
有几种方法可以解决此问题。许多提供商会允许您租用或购买负载平衡设备,例如 F5 或类似设备。这些设备可以对 TCP 连接和许多 7 级连接进行负载平衡,以平衡一组机器。现在,如果您无法在硬件上获得负载平衡器,还有其他选择,例如 nginx、haproxy 和 apache 都有负载平衡工具来执行此操作。
如果您的项目需要超快的速度,我建议您使用硬件。不要误会我使用了很多 nginx 代理。有时我会使用 tcp 代理到 ha 代理进行第 7 级代理。由于硬件负载平衡器不需要使用太多功率,并且您可以使用更多的 nginx 负载来处理其余流量,因此当您需要执行大量 SSL 术语时,这很有用,让硬件负载平衡器执行大量 ssl 成本很高,但 apache、haproxy、nginx 可以以相当便宜的价格完成。
Nginx的: http://wiki.nginx.org/HttpProxyModule https://github.com/yaoweibin/nginx_tcp_proxy_module
阿帕奇: https://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html
HaProxy的: http://tenfourty.com/2011/04/09/how-to-load-balance-tcp-connections-with-haproxy/