![负载平衡 IIS。我应该使用 NLB、基于 Linux 的反向代理还是其他什么?](https://linux22.com/image/541613/%E8%B4%9F%E8%BD%BD%E5%B9%B3%E8%A1%A1%20IIS%E3%80%82%E6%88%91%E5%BA%94%E8%AF%A5%E4%BD%BF%E7%94%A8%20NLB%E3%80%81%E5%9F%BA%E4%BA%8E%20Linux%20%E7%9A%84%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E8%BF%98%E6%98%AF%E5%85%B6%E4%BB%96%E4%BB%80%E4%B9%88%EF%BC%9F.png)
对运行大量 .NET 应用程序的至少 2-3 个 Windows 2008 R2 IIS Web 服务器进行负载平衡的最佳方法是什么?我的选择似乎是:
1) 基于硬件的网络设备负载均衡器,如 Cisco CSS
2) Windows NLB
3) 某种基于 Linux 的代理,haproxy 或其他
这三台服务器作为虚拟机位于 vSphere 集群中,因此我能够在高负载时通过克隆来增加实例数量。我控制 vSphere 主机所接入的交换机 (Cisco 3750),但不控制除此以外到客户端的交换/路由基础设施。
(1) 太贵了,可能超出了我的需求。我之所以包含这个,是为了防止有人想出一种巧妙的方法在我现有的网络套件上做到这一点,但我对此表示怀疑。
(2) 似乎是显而易见的“内置”选项,但似乎相当麻烦,会弄乱网络接口、多播和其他似乎不必要的复杂事物。它也相当愚蠢,因为如果主机开始抛出 500 错误或出现其他问题,它无法从池中移除主机
(3) 是最有趣的选项,因为它似乎提供了最大的灵活性和可定制性,但又不必处理网络问题。然而,虽然我熟悉 lighttpd 等的反向代理功能,但我对 HAProxy 等其他选项了解不多,而这些选项可能能够提供更多功能。
您会选择哪一个?还有什么我还没有想到的吗?
答案1
在 Stackoverflow,我们使用 HAProxy 来平衡我们的 Windows Server 2008 R2 IIS 7 Web 服务器,取得了巨大成功。我们喜欢 HAProxy,发现它非常灵活。
答案2
您说的流量是多少?Citrix 提供了 Netscaler 负载均衡器的免费版本,作为 ESX、Hyper-V 和 XenServer 的虚拟机。它被称为 Netscaler VPX Express,可提供高达 5Mb 的负载平衡吞吐量。它还包括一个 10 个用户的 SSL VPN 许可证作为远程访问解决方案。我一直在内部使用它,取得了巨大的成功。
以下是 Citrix 最近的一篇博客文章,讨论了免费虚拟机最近从 1Mb 增加到 5Mb 的情况:http://community.citrix.com/display/ocb/2011/02/28/NetScaler+VPX+Express+Sets+Your+Networks+(Even)+Free(-er+than+Before!)
答案3
多年来,我一直使用 NLB 来处理 IIS Web 服务,经验丰富。它实际上并不是一个负载平衡器,而是一个冗余工具。负载不会在服务器之间智能共享,但能够关闭一台服务器进行升级,并让所有服务器正常运行,这确实非常好。我建议您从 NLB 开始,看看它是否适合您。毕竟它是免费的,而且非常简单。
答案4
这不是一个真正的答案,但是这(文章?)可能会为您提供一些很好的背景信息,以帮助您做出选择:通过负载平衡使应用程序可扩展