Citrix ADC

如果后端服务器重置TCP连接,请求重试

当后端服务器重置TCP连接时,请求重试功能会将请求转发到下一个可用服务器,而不是将重置发送到客户端。通过执行重新负载平衡,当设备向下一个可用服务发起同一请求时,客户端会保存。

后端服务器重置TCP连接时请求重试的工作原理

下图显示了组件之间的交互方式。

请求重试如何用于TCP连接重置

  1. 该过程首先在设备上启用appqoe功能。
  2. 当客户端发送HTTP或HTTPS请求时,负载平衡虚拟服务器将该请求发送到后端服务器。
  3. 如果请求的服务不可用,则后端服务器将重置TCP连接。
  4. 如果appqoe配置启用了“重试”且指定了所需的重试次数,则负载平衡虚拟服务器将使用配置的负载平衡算法将请求转发到下一个可用的应用程序服务器。
  5. 负载平衡虚拟服务器收到响应后,设备将响应转发给客户端。
  6. 如果可用的后端服务器等于或小于重试计数,如果所有服务器都发送了重置,则设备将响应 500 个内部服务器错误。考虑一个具有五台可用服务器且重试计数设置为 6 台的场景。如果所有五台服务器都重置了连接,则设备将向客户端返回 500 个内部服务器错误。
  7. 同样,如果后端服务器的数量超过重试计数,如果后端服务器重置连接,则设备将重置转发给客户端。考虑一个包含三台后端服务器并将重试计数设置为两台的场景。如果三台服务器重置连接,则设备将向客户端发送重置响应。

为get方法配置请求重试

要为得到方法配置重试功能,必须完成以下步骤。

  1. 启用AppQoE
  2. 添加AppQoE操作
  3. 添加AppQoE策略
  4. 将AppQoE策略绑定到负载平衡虚拟服务器

启用AppQoE

在命令提示符下,键入:启用ns特性appqoe

添加AppQoE操作

您必须配置AppQoE操作以指定是否希望设备在TCP重置后重试以及重试次数。

add appqoe action reset_action -retryOnReset (YES | NO) -numretries ]

示例:

5 . add appqoe action reset_action -retryOnReset YES -numretries

其中,retryOnReset。如果后端服务器重置TCP连接,请启用重试。数字。重试计数。

添加AppQoE策略

要实施AppQoE,您必须将AppQoE策略配置为特定队列中传入的HTTP或SSL请求的优先级。

在命令提示符下,键入:

添加appqoe policy -rule -action

示例:

添加appqoe策略reset_policy -rule http.req.method.eq(get) -action reset_action

将appqoe策略绑定到负载平衡虚拟服务器

当后端服务器重置TCP数据包请求并且希望负载平衡虚拟服务器将请求转发到下一个可用服务时,必须将负载平衡虚拟服务器绑定到AppQoE策略。

在命令提示符下,键入:

bind lb vserver (( (-policyName [-priority ] [-gotoPriorityExpression ] [type (REQUEST | RESPONSE)]

示例:

bind lb vserver v1 -policyName reset_policy -type REQUEST -priority

为张贴请求配置请求重试

在重新负载平衡请求将数据写入后端服务器时,必须始终谨慎行事。对于此类请求,请确保内容长度很短。如果内容长度很长,则可能会导致资源消耗。按照下面给出的步骤为张贴请求配置重新负载平衡。

  1. 启用AppQoE
  2. 添加AppQoE操作
  3. 添加AppQoE策略
  4. 将AppQoE策略绑定到负载平衡虚拟服务器

启用AppQoE

在命令提示符下,键入:

启用ns特性appqoe

添加Appqoe操作

在TCP重置和重试次数之后,您必须添加AppQoE操作才能重试。

add appqoe action reset_action -retryOnReset (YES | NO) -numretries ]

示例:

5 . add appqoe action reset_action -retryOnReset YES -numretries

添加Appqoe策略

要实施AppQoE,您必须配置AppQoE策略以定义如何将特定队列中的连接排队。

在命令提示符下,键入:

添加appqoe policy -rule -action

示例:

添加appqoe策略reset_policy -rule HTTP.REQ.CONTENT_LENGTH.le(2000) -action reset_action

注意: 如果您希望将请求重试功能限制为内容长度小于 2000,则可以使用此配置。

将负载平衡虚拟服务器绑定到AppQoE策略

当后端服务器重置TCP数据包请求时,如果您希望负载平衡虚拟服务器通过特定队列将请求转发到下一个可用服务,则必须将负载平衡虚拟服务器绑定到AppQoE策略。

在命令提示符下,键入:

bind lb vserver (( (-policyName [-priority ] [-gotoPriorityExpression ] [type (REQUEST | RESPONSE)]

示例:bind lb vserver v1 -policyName reset_policy -type REQUEST -priority

使用Citrix ADC GUI为请求重试配置AppQoE策略

  1. 导航到AppExpert>AppQoE>策略
  2. 在“AppQoE策略“页中,单击”添加”。
  3. 在“创建AppQoE策略页中,设置以下参数:a.名称。AppQoE策略名称b.操作。添加或编辑操作。要创建操作,请参阅创建AppQoE操作部分。C.表达式。选择或输入HTTP.REQ.CONTENT_LENGTH。勒(2000)策略表达式。
  4. 单击创建关闭

    AppQoE策略用于请求重试或重新负载平衡

使用Citrix ADC GUI为请求重试平衡配置AppQoE操作

  1. 导航到AppExpert>AppQoE>操作
  2. AppQoE操作页面中,单击添加
  3. 在“创建AppQoE操作页中,为TCP重置时重试设置以下参数:a.在TCP重置时重试。选中该复选框可启用TCP重置的重试操作。B.重试计数。输入重试计数。
  4. 单击创建关闭

    为请求重试平衡配置AppQoE操作

在TCP syn建立时后端服务器重置时为get方法配置请求重试

Cli和GUI配置类似于get方法所遵循的步骤。有关更多信息,请参阅为get方法配置请求尝试部分。当后端服务器重置连接部分时。

如果后端服务器重置TCP连接,请求重试