将新连接轮询到多个后端
为 HTTP(S) 或 TCP 隧道设置多个目标,并了解轮询、健康检查与重试边界
HTTP(S) 隧道和 TCP 隧道可配置多个“目标地址(IP:端口)”。NPS 按轮询顺序为新连接选择目标,适合把无状态服务分散到多台内网主机。
Web 配置
新增或编辑隧道,在目标地址中每行填写一个目标:
HTTP(S) 和 TCP 均使用相同格式。配置文件模式用逗号分隔:
调度边界
- 算法是顺序轮询,不按响应时间、连接数或权重调度。
- TCP 每个新连接选择一次目标;HTTP keep-alive 上的多个请求可能继续使用同一后端,并非严格逐请求平均。
- 选中的目标连接失败时,当前请求不会自动重试下一个目标。
- Web 配置本身不提供主动健康检查。NPC 配置文件支持另行定义健康检查,并在目标失效时暂停向它转发新连接。
- 会话保存在单机内存的应用需要共享会话、无状态令牌或应用层粘性策略,否则登录状态可能在后端间丢失。
NPC 健康检查
配置文件模式可以为 target_addr 中的同一批地址增加 TCP 或 HTTP 检查。例如:
HTTP 检查要求返回状态码 200。使用 health_check_type=tcp 时不需要 health_http_url,只验证能否建立 TCP 连接。health_check_target 必须与隧道目标地址保持一致,恢复后目标会重新加入轮询。
验证
让各后端返回不同实例标识,连续建立多个新连接观察是否轮询。测试故障时主动停止一个后端,确认客户端能接受单次连接失败,或在 NPS 前后增加具备健康检查和重试能力的专业负载均衡器。