可用Windows Server自带NLB快速搭建Nginx高可用集群,需两台同版本服务器、静态IP、同子网,推荐多播模式;通过nlbmgr.msc图形化创建集群并验证流量分发与故障转移。
直接用windows server自带的nlb功能,就能快速搭起nginx高可用集群,不用装keepalived,也不依赖第三方工具。关键在选对模式、配好网络、避开交换机泛洪这类典型坑。
准备两台及以上Windows服务器
最低要求是2台同版本系统(推荐Windows Server 2019或2022),每台都得满足:
- 静态IP地址(DHCP不支持)
- 安装好Nginx(例如用choco install nginx -y一键安装)
- 确认Nginx能正常响应:启动服务后执行curl http://localhost返回HTML内容
- 所有服务器必须在同一子网,且客户端能直连该子网
选对NLB操作模式再配置
NLB有三种模式,选错会导致交换机泛洪、节点失联等问题:
- 单播模式:最简单,适合测试环境;但所有节点共用一个虚拟MAC地址,容易让交换机学习混乱,需关闭端口安全或启用混杂模式
- 多播模式:更稳定,各节点保留原MAC地址;但需要手动在交换机上配置静态ARP和静态MAC表项
- IGMP多播模式:自动同步组播成员关系,对交换机要求最高——必须支持IGMP Snooping
生产环境建议优先试多播,若交换机不支持再退到单播并调交换机设置。
图形化创建NLB集群(5分钟搞定)
在其中一台服务器上打开“网络负载平衡管理器”(nlbmgr.msc):
- 右键“网络负载平衡群集”,选“新建群集”
- 输入第一台服务器IP,点“连接”,再添加集群IP(即对外服务的VIP,如10.10.10.10)
- 选择操作模式(单播/多播/IGMP)、端口规则(默认全开80端口)、筛选模式(建议“多播”或“单一主机”)
- 添加第二台服务器:在已建群集中右键→“添加主机”,填入其IP并完成向导
完成后,所有节点状态显示“已启动”,VIP即可被客户端访问。
验证与故障应对要点
别只看界面绿灯,要实测流量分发和故障转移:
- 用curl -I http://VIP反复请求,检查响应头中Server字段是否在两台Nginx间轮换
- 手动停掉一台Nginx服务,等待10–15秒,再请求VIP,应仍可访问且无报错
- 若某节点掉线却不自动剔除,可配置健康检查脚本:比如用HTTPMon定时探测http://localhost/health,失败则执行wlbs drainstop
注意NLB本身不保证会话保持,Nginx需自行加ip_hash或用外部Session存储来补足。


















