使用负载均衡器获取(非HTTP)客户端IP

时间:2012-11-01 16:05:10

标签: amazon-ec2 amazon-web-services load-balancing

说我想运行类似nyan cat telnet服务器(http://miku.acm.uiuc.edu/)的东西,我需要处理10,000个并发连接。除负载均衡器外,我还有10台服务器。每个服务器可以处理1,000个并发连接,我想在它前面放置一个负载均衡器,将流量随机分配给10个服务器。

根据我的阅读,负载均衡器将HTTP请求(以及客户端IP)传递给后端服务器(可能使用FastCGI或X-header)相当简单。

在这种情况下,使用简单的TCP服务器,负载均衡器将客户端IP传递到后端服务器的最简单方法是什么?是否需要硬件负载平衡器,或者是否有办法简单地通过软件实现这一点?

换句话说,在为非HTTP内容进行负载平衡时,是否有统一的方法来传递客户端IP? Google在对Google Talk XMPP服务器或其Gmail IMAP服务器进行负载均衡时获取客户端IP的方式与

相同

这不适用于任何具体的事情;我只是想知道是否以及如何做到这一点。提前谢谢!

1 个答案:

答案 0 :(得分:2)

最简单的方法是让负载均衡器使自己完全不可见,并将源连接和目标IP地址无连接地传递给连接。为此,必须为所有10台服务器分配相同的IP地址(作为环回地址,而不是物理接口),这将是客户端连接到的IP地址。到该IP地址的Internet流量必须转到负载均衡器。负载均衡器必须是服务器的默认网关。