使用 HTTP 代理进行负载平衡

使用 HTTP 代理进行负载平衡

我正在尝试使用 HTTP 代理来处理负载平衡,但我不确定这样做是否明智。我的问题是我需要有多个私有服务器,通过负载平衡器为多个公共 IP 提供服务。我正在为具有弹性 IP 的服务器使用 Amazon EC2。

我对传统负载平衡的理解是,解析 IP 是负载平衡器转发到的服务器的 IP。如果这是正确的,我就不能使用传统负载平衡,因为我的每个公共 IP 都必须在其所连接的域中显得唯一。因此,如果发生反向 IP 查找,则很难找到类似的应用程序。

这种配置可能会遇到什么样的问题?有更好的解决方案吗?

谢谢

编辑:尽管我已经解决了这个问题,但我仍在分享一些额外的信息,也许可以在将来为某些人提供帮助。

我们的情况是,我们为每个客户提供白标服务。我们的应用托管在单个服务器上,具有单个 IP。当新客户加入时,他们会将子域的 @host 指向我们服务器的 IP。

当您 ping 域名、运行 whois 或执行某些可显示域名 IP 的操作时,就会出现此问题。由于 IP 并非域名独有,因此您可以使用该应用程序轻松找到域名列表。您只需付出一点努力,即可使用该域名列表找到客户列表。

我们的解决方案是建立 EC2 并为每个客户端指定一个弹性 IP。这种方法很有效,直到我们发现需要负载平衡。

我尝试配置 Amazon 的 ELB 来满足我们的需求,但是无法获得能够同时利用弹性 IP 和负载均衡器的配置。

结果:

我们现在的配置是使用 EC2 实例,其中配置了 Nginx 来反向代理我们的应用服务器集。弹性 IP 与 Nginx 负载均衡器实例绑定,然后将请求转发到相应的应用服务器。

它可能不是最好的配置,但它适合我们的需求,并且延迟差异可以忽略不计。

希望这能澄清一切,再次感谢。

答案1

正如@EEAA 和@DiogenesdeLight 建议的那样,我使用 Nginx 反向代理来实现我想要的结果。

我使用了这个 Nginx 配置:http://devblog.daniel.gs/2014/01/deploying-node-apps-on-aws-ec2-with.html

到目前为止,它似乎运行得非常好,并且只花了五分钟就完成了配置。

感谢您的支持。

相关内容