Jonas Asked: 2017-05-22 23:01:53 +0800 CST2017-05-22 23:01:53 +0800 CST 2017-05-22 23:01:53 +0800 CST 如果失败,NetScaler 重试下一个服务器 772 我有 8 台服务器由 NetScaler VPX (10) 进行负载平衡。如果上一个服务器以 502 状态响应,如何使 NetScaler 负载均衡器将请求重新发送到下一个服务器? load-balancing 2 个回答 Voted Best Answer Jan 2017-05-23T23:54:16+08:002017-05-23T23:54:16+08:00 这完全取决于您的配置。但是,在所有情况下,重试到下一个服务器的不是 NetScaler 设备本身。您必须在配置中创建一个构造,以便当后端服务器返回 HTTP 502 时,重写对客户端的响应以让客户端重试请求。此时必须识别进入 NetScaler 的新请求,以便您可以强制将后端服务器用于该请求。 一个选项是使用服务器 ID 配置服务器组的成员,并使用该服务器 ID 执行显式负载平衡。然后,初始失败的响应必须返回一个包含服务器 ID 的 cookie。 如果 cookie 出现在第二个请求中,并且拥有有效的服务器 ID,则将使用该后端服务器。 简而言之,您必须在 NetScaler 上使用以下组件: 内容切换(请求是否有服务器 id cookie) 使用每个服务组绑定的服务器 ID 定义进行负载平衡 重写初始请求的响应。 如果您的应用程序不支持重定向,那么您就不走运了,因为 NetScaler 无法根据来自第一台服务器的原始响应重试原始请求。 干杯,简 David Ambarsumov 2020-07-01T12:16:27+08:002020-07-01T12:16:27+08:00 您可以根据此链接使用 HTTP Call-out 策略 https://support.citrix.com/article/CTX122335
这完全取决于您的配置。但是,在所有情况下,重试到下一个服务器的不是 NetScaler 设备本身。您必须在配置中创建一个构造,以便当后端服务器返回 HTTP 502 时,重写对客户端的响应以让客户端重试请求。此时必须识别进入 NetScaler 的新请求,以便您可以强制将后端服务器用于该请求。
一个选项是使用服务器 ID 配置服务器组的成员,并使用该服务器 ID 执行显式负载平衡。然后,初始失败的响应必须返回一个包含服务器 ID 的 cookie。
如果 cookie 出现在第二个请求中,并且拥有有效的服务器 ID,则将使用该后端服务器。
简而言之,您必须在 NetScaler 上使用以下组件:
如果您的应用程序不支持重定向,那么您就不走运了,因为 NetScaler 无法根据来自第一台服务器的原始响应重试原始请求。
干杯,简
您可以根据此链接使用 HTTP Call-out 策略
https://support.citrix.com/article/CTX122335