如果失败,NetScaler 将重试下一个服务器

如果失败,NetScaler 将重试下一个服务器

我有 8 台服务器,它们由 NetScaler VPX (10) 进行负载平衡。如果上一台服务器响应 502 状态,如何让 NetScaler 负载平衡器将请求重新发送到下一台服务器?

答案1

这一切都取决于您的配置。但是,在所有情况下,都不是 NetScaler 设备本身会重试到下一个服务器。您必须在配置中创建一个构造,以便当后端服务器返回 HTTP 502 时,重写对客户端的响应以让客户端重试请求。此时必须识别进入 NetScaler 的新请求,因此您可以强制使用后端服务器来处理该请求。

一个选项是使用服务器 ID 配置服务器组的成员,并使用该服务器 ID 执行显式负载平衡。初始失败响应必须返回包含服务器 ID 的 cookie。

如果第二个请求中存在该 cookie,且其包含有效的服务器 ID,那么就会使用该后端服务器。

简而言之,您必须在 NetScaler 上使用以下组件:

  • 内容切换(请求是否有服务器 ID Cookie)
  • 使用每个服务组绑定的服务器 ID 定义进行负载平衡
  • 重写初始请求的响应。

如果您的应用程序不支持重定向,那么您就倒霉了,因为 NetScaler 无法根据第一台服务器的原始响应重试原始请求。

欢呼吧,Jan

答案2

您可以根据此链接使用 HTTP 调用策略

https://support.citrix.com/article/CTX122335

相关内容