跨多个静态文件服务器进行负载均衡以实现带宽分配的最佳方法?

Modified on: Mon, 08 Apr 2019 21:00:02 +0800

首先,我会向你解释我的情况。我正在运行一个相当受欢迎的网站作为副项目,所以我不能真正投入大量资金。我目前在前面只有一台带有HAProxy的服务器向Apache发送正常请求,并向Lighttpd发送所有静态文件请求。这非常有效,因为所有的php和post请求都由Apache处理,而所有图像都被发送到更快的Lighttpd(该网站主要是图像,所以这非常重要)。不必设置子域来提供图像会很好,因为短URL也非常重要,因此我使用HAProxy的原因。

我找到了一个托管服务提供商,它提供了我一直在使用的非常便宜的无计量带宽,当我开始推出100mbs网卡可以处理的带宽时,问题就出现了,因此需要第二台服务器。 / p>

我已经考虑了很多选择,所以我会向你解释每一个。希望你能提供一些见解,了解哪一个对我来说是最好的选择,或者可能还有其他选择,我还没想过。

要求:强>

  • 甚至带宽分配也是必须的。我有一个非常强大的服务器,所以扩展不是一个选择。我需要扩展以获得更多带宽。

  • 短网址。我真的不想设置像img.example.com这样的子域来提供我的图像。 example.com/image.jpg就是现在的样子,以及我希望它如何留下来。但如果没有其他办法,那么我理解。

  • 处理请求的clostest服务器非常好,但不是必须的。要记住的事情。

HAProxy to loadbalance:

  • 这很容易,因为我已经在使用HAProxy了。但是,我认为在分配带宽时会出现问题。我可能错了,但是HAProxy不会将请求发送到服务器处理它的服务器,然后通过HAProxy将其发送回客户端吗?因此,所有流量都通过负载均衡器返回,导致其使用的带宽与所有服务器的总和相同。

DNS Round Robin:

  • 这可能是我最好的选择。只需在多台服务器上复制网站,就可以完成我现在正在做的事情。缺点是,如果一台服务器出现故障,客户端仍然会被发送给它。我还需要跨多个服务器复制该站点。我有点希望我可以有一个主服务器来处理除静态文件之外的所有内容,然后有几个静态文件服务器。我还读到这有点像'穷人的负载平衡',如果有更复杂的东西会更好。

直接服务器返回:

  • 看起来真的很复杂,但可能是一个不错的选择。我仍然可以将某些URL发送到某些服务器吗?就像现在使用HAProxy一样,每个以正确文件扩展名结尾的URL都会发送到Lighttpd,而其他扩展名则会发送到Apache。所以我需要类似的东西。比如,所有的php请求都由运行平衡软件的同一台服务器处理,而所有的jpg请求都发送到多个服务器。

理想情况下,如果HAProxy支持Direct Server Return,那么我的问题就会得到解决。我也不想使用CDN,因为它们真的很贵,毕竟这只是一个副项目。

你了解我的问题吗?如果我没有正确解释或者您需要更多信息,请告诉我。

作者:Alan

最佳答案

绘制应用程序的请求/响应周期的图片并隔离瓶颈。您是正确的,将负载分配给许多应用程序服务器的单个代理将需要所有应用程序服务器的聚合带宽。经典的解决方案是RR DNS。谷歌,雅虎和亚马逊都在短TTL中使用这种技术。我做了一些调查,并且记录了我的调查结果

另一个解决方案是使用虚拟IP地址的花式企业负载平衡解决方案来平衡具有真实IP地址的多个应用服务器之间的请求。我曾与Netscaler和Stonesoft产品合作过。两者都表现不错,但具有可怕的特质,而且相当复杂。

作者:lee

相关问答

添加新评论