我在 VM server2012r2 上托管了一个应用程序。此应用程序有一个 Web 部件,运行 .NET 5 (Kestrel)。可以通过http://<serverip>:808
或访问该 Web 部件https://<serverip>:4434
。
我已经设置了第二台虚拟机,即服务器 2019。应用程序也安装在那里(.NET 5,Kestrel),其中 Web 部件也可以通过端口 http:808 或 https:4434 在服务器上访问。
该应用程序的配置方式是它们指向同一个数据库等...
所以基本上它们是两个一起工作的应用程序但都可以通过它们自己的门户访问。
我遇到的唯一问题是有两个门户指向同一个:
http://<server2012>:808
和 http://:808`
(或指向 https 端口 4434 的相同门户)。
我的想法是启用 Microsoft 网络负载平衡器,以便
(A)最终用户只需前往http://<something>:808
或https://<something>:4434
无需记住两个门户 IP 中的一个;
(二)流量在两者之间进行负载平衡(如果一个无法访问,则转到可用的那个(我不确定 nlb 是否能够做到这一点?))。
由于这是我第一次使用 Microsoft NLB,因此我遵循了教程。https://www.serverlab.ca/tutorials/windows/web-servers/load-balancing-web-servers-with-windows-server-2012-r2/
我面临的问题是,当我创建一个具有参数、IP 地址(192.168.0.88)和完整互联网名称(nlbtest.com)的新集群,并为集群 IP 192.168.0.88 添加一个从 808 - 808 的 TCP 端口时,我无法再通过远程桌面访问我的服务器。
服务器 2012r2(VM 1 NIC):192.168.0.90
上运行 kestrel web 应用程序http://192.168.0.90:808 或者https://192.168.0.90:4434
服务器 2019(虚拟机 1 网卡):192.168.0.91
上运行 Kestrel Web 应用程序http://192.168.0.91:808或者https://192.168.0.91:4434
群集 IP:192.168.0.88,用于 TCP 端口 808,
当我通过 Microsoft NLB 在 Server2012R2 上配置此端口时,我不再有任何连接。我只能使用主机上的 Hyper-V 管理器来访问虚拟机,而在虚拟机中,我无法再 ping 或浏览网页。
我做的事情明显是错的吗?
答案1
这可能是因为您在单播模式下运行 NLB,并且服务器中只有一个 NIC。每次打开 NLB 管理界面时,实际上都会出现有关此问题的警告:
在所有网络都绑定到 NLB 的系统上运行 NLB 管理器可能无法按预期工作。如果所有接口都设置为以“单播”模式运行 NLB,NLB 管理器将无法连接到主机。
因此,要么使用 NLB 接口(正如您的文章所建议的那样),要么使用多播模式。这两种模式各有利弊,具体选择哪种模式取决于您的网络基础设施。