我的网站在增长。我需要将功能集划分到不同的服务器组,而不是让所有功能都在一个服务器副本上运行。我在Windows网络负载平衡设置中有8台相同的服务器。
问题是:我需要保持URL空间不变。什么是可行的解决方案?我不想为功能集启动新的域。我正在考虑一种具有基于URL的重写/路由功能的反向代理(?!?)。在软件或硬件方面有什么建议吗?这将取代WNLB设置,因为它没有我需要的功能。
发布于 2009-03-09 22:18:51
确实有几种实现负载均衡的解决方案:
循环调度
我知道1)和2)在这里不是一个选项,所以...如果你有钱,而且确实需要高性能的,那就去买吧。否则,选择3)。
对于代理轮询,也有几种可能的解决方案:Apache mod_rewrite、Apache mod_proxy、Squid (当然还有许多我不知道的其他解决方案)。
正如您所看到的,选择其中一个取决于您想要代理的内容和方式。在你的例子中,如果你想在mod_proxy上使用缓存(如果可以的话),我会考虑运行Apache或Squid。
关于硬件,我不是专家,但我认为一台“小型”到“中型”的专用服务器就足够了。但不要忘记所有的请求都会经过这台机器,所以它的大小很大程度上取决于你的流量,这看起来很不错。这可能需要对真实生活数据进行一些挖掘。
发布于 2009-03-12 20:34:40
如果您有8台服务器,我建议使用其中的7台来分担工作负载,并使用一台前端服务器作为代理。
您的前端服务器可以运行Apache,并使用mod_proxy将每个HTTP请求委托给7个后端服务器之一。如果需要,您可以将mod_proxy设置为根据传入的URL委派工作,例如,您可以让一台服务器提供视频,两台服务器提供博客条目,其余的做其他任何事情。
您的前端服务器将是非常轻量级的:只运行Apache,几乎没有其他功能。您还可以使用Squid或Apache的mod_cache在此前端服务器上缓存您的静态内容,以便图像、js、css和其他静态内容的请求在缓存后永远不会命中您的后端7服务器。
编辑:我刚刚读了帕斯卡的评论,他也提出了同样的建议。我会修改他+1
https://stackoverflow.com/questions/627780
复制相似问题