首先,我将向您解释我的情况。我正在运行一个相当受欢迎的网站作为附带项目,因此我无法真正投入大量资金。我目前只有一台服务器,前面有HAProxy,向Apache发送正常请求,向Lighttpd发送所有静态文件请求。这非常有效,因为所有php和post请求均由Apache处理,而所有图像均发送到速度更快的Lighttpd(该站点主要是图像,因此这很重要)。不必设置一个子域来提供图像会很好,因为短网址也非常重要,因此,我之所以使用HAProxy。
我发现一个托管服务提供商提供了我一直在使用的非常便宜的未计量带宽,当我开始提供100mbs网卡可以处理的最大带宽时出现了问题,因此需要第二台服务器。
我在选择方案时考虑了很多,因此我将向您解释每个方案。希望您可以提供一些见解,以了解哪个对我来说是最佳选择,或者也许还有另一个我还没有想到的选择。
要求:
甚至带宽分配也是必须的。我有一台功能强大的服务器,因此无法扩展。我需要扩展以获取更多带宽。
短网址。我真的不会设置像img.example.com这样的子域来提供图片。example.com/image.jpg是现在的样子,也是我真正希望它留下的样子。但是,如果没有其他办法,我就会理解。
处理请求的最直接的服务器将非常好,但不是必须的。要记住的事情。
HAProxy进行负载平衡:
- 因为我已经在使用HAProxy,所以这真的很容易。但是,我认为问题在于分配带宽时。我对此可能是错的,但是HAProxy不会将请求发送到服务器,服务器在该服务器上对其进行处理,然后再通过HAProxy将其发送回客户端吗?因此,所有流量都通过负载平衡器返回,导致它使用的带宽与所有服务器的总和一样多。
DNS轮循:
- 这可能是我最好的选择。只需跨多个服务器复制网站,然后执行我现在正在做的事情。不利的一面是,如果一台服务器出现故障,客户端仍然会发送给它。我还需要跨多个服务器复制站点。我有点希望我可以有一个主服务器来处理除静态文件以外的所有内容,然后再有几个静态文件服务器。我还读到,这有点像“穷人的负载平衡”,最好有一些更复杂的东西。
服务器直接返回:
- 看起来确实很复杂,但可能是一个不错的选择。我仍然可以将某些URL发送到某些服务器吗?就像现在使用HAProxy一样,每个以正确的文件扩展名结尾的URL都将发送到Lighttpd,而其他扩展名将发送到Apache。所以我需要类似的东西。像一样,所有php请求都由运行平衡软件的同一台服务器处理,而所有jpg请求都发送到多个服务器。
理想情况下,如果HAProxy支持Direct Server Return,那么我的问题将得到解决。我也不想使用CDN,因为它们确实很昂贵,而且毕竟这只是一个附带项目。
你明白我的问题吗?让我知道我是否解释不正确或您需要更多信息。