Microsoft NLB + MySQL + IIS7

Microsoft NLB + MySQL + IIS7

可能重复:
Microsoft NLB + MySQL + IIS7

这是我的设置:

HyperV VM 1:Server 2008 R2 + Microsoft 网络负载均衡器 (NLB) + MySQL + IIS 3 NIC - LAN1 - 管理 192.168.1.1 LAN2 - Web 192.168.1.2 LAN3 - SQL 192.168.1.3

HyperV VM 2:Server 2008 R2 + Microsoft 网络负载均衡器 (NLB) + MySQL + IIS 3 NIC - LAN1 - 管理 192.168.1.4 LAN2 - Web 192.168.1.5 LAN3 - SQL 192.168.1.6 LAN2 和 LAN3 均设置有 NLB,因此每个 LAN2 都与 192.168.1.7 绑定,用于端口 80。LAN3 和 LAN3 均设置有 NLB,因此每个 LAN3 都与 192.168.1.8 绑定,用于端口 3306

我已经设置 192.168.1.7 来均衡负载,并且将 192.168.1.8 设置为默认 VM1,如果 VM1 出现故障,则故障转移到 VM2。

当从第三方机器使用 192.168.1.7 或 192.168.1.8 访问时,行为将根据 NLB 规则正常进行。

但是我的问题如下。当我尝试从其中一个虚拟机访问 192.168.1.7 或 192.168.1.8 时,它们仅与绑定到 NLB 的各自接口通信。

例如,与 mysql (192.168.1.8) 通信的 VM2 上的浏览​​器在呼叫 192.168.1.8 时只会与 VM2 上的 mysql 通信,即使 192.168.1.8 设置为转到 VM1,除非 VM1 不可用。

我想象这与以下事实有关:在每个 VM 上,LAN3 都有自己的 IP 和共享 IP,并且它会转到最近的 IP,而 VM 之外的客户端会询问它应该转到哪个 IP。

关于如何让它正常工作,您有什么想法吗?

答案1

我认为这是 NLB 设置中的预期行为。本地 TCP/IP 堆栈意识到这是一个本地 IP 地址,甚至不会通过网络传输数据包。对于负载平衡 Web 服务器,NLB 的使用或多或少已被弃用。您可能想查看Web 农场框架结合应用程序请求路由 (ARR) 模块适用于 IIS。这为 Web 服务器提供了更好的可扩展且灵活的负载平衡解决方案。

相关内容