Citrix ADC

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

当后端服务器重置TCP连接时,请求重试特性将请求转发到下一个可用的服务器,而不是将重置发送到客户端。通过重新加载平衡,当设备向下一个可用服务发起相同的请求时,客户机保存RTT。

当后端服务器重置TCP连接时,请求重试如何工作

下图显示了组件之间是如何交互的。

请求重试如何为TCP连接重置工作

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

为GET方法配置请求重试

要配置GET方法的重试特性,必须完成以下步骤。

  1. 使AppQoE
  2. 添加AppQoE操作
  3. 添加AppQoE策略
  4. 绑定AppQoE策略到负载均衡虚拟服务器

使AppQoE

在命令提示符下,输入:启用nsfeature appqe

添加AppQoE操作

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

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

例子:

add appqe action reset_action -retryOnReset YES -numretries

在那里,retryOnReset。启用后端服务器重置TCP连接时的重试功能。numretries。重试计数。

添加AppQoE策略

要实现AppQoE,必须配置AppQoE策略,以便在特定队列中优先考虑传入的HTTP或SSL请求。

在命令提示符下,输入:

添加appqoe策略 -rule -action

例子:

添加appqe策略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

为POST请求配置请求重试

在重新加载将数据写入后端服务器的余额请求时,必须始终保持谨慎。对于这样的请求,请确保内容长度较短。如果内容长度太长,那么可能会导致资源消耗。按照下面给出的步骤配置POST请求的重新加载平衡。

  1. 使AppQoE
  2. 添加AppQoE操作
  3. 添加AppQoE策略
  4. 绑定appQoE策略到负载均衡虚拟服务器

使AppQoE

在命令提示符下,输入:

启用nsfeature appqe

添加appqe操作

您必须添加一个AppQoE动作,以便在TCP重置后重试和重试次数。

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

例子:

add appqe action reset_action -retryOnReset YES -numretries

添加Appqoe策略

要实现AppQoE,必须配置AppQoE策略来定义如何在特定队列中对连接进行排队。

在命令提示符下,输入:

添加appqoe策略 -rule -action

例子:

add appqe policy 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连接,请求重试