Citrix ADC

Solicitar reintento si el servidor back-end restablece la conexión TCP

Cuando un servidor back-end restablece una conexión TCP, la función de reintento de solicitud reenvía la solicitud al siguiente servidor disponible, en lugar de enviar el restablecimiento al cliente. Al realizar el equilibrio de recarga, el cliente guarda RTT cuando el dispositivo inicia la misma solicitud al siguiente servicio disponible.

Cómo funciona el reintento de solicitud cuando el servidor back-end restablece una conexión TCP

El siguiente diagrama muestra cómo interactúan los componentes entre sí.

Cómo funciona el reintento de solicitud para restablecer la conexión TCP

  1. El proceso comienza habilitando la función appqoe en el dispositivo.
  2. Cuando el cliente envía una solicitud HTTP o HTTPS, el servidor virtual de equilibrio de carga envía la solicitud al servidor back-end.
  3. Si el servicio solicitado no está disponible, el servidor back-end restablece la conexión TCP.
  4. Si la configuración de appqoe tiene habilitado “reintentar” con el número deseado de intentos de reintento especificado, el servidor virtual de equilibrio de carga utiliza el algoritmo de equilibrio de carga configurado para reenviar la solicitud al siguiente servidor de aplicaciones disponible.
  5. Después de que el servidor virtual de equilibrio de carga reciba la respuesta, el dispositivo reenvía la respuesta al cliente.
  6. Si los servidores back-end disponibles son iguales o inferiores al recuento de reintentos y si todos los servidores envían restablecimiento, el dispositivo responderá a un error de 500 servidores internos. Considere un caso con cinco servidores disponibles y el recuento de reintentos establecido como seis. Si los cinco servidores restablecen la conexión, el dispositivo devuelve un error de servidor interno 500 al cliente.
  7. Del mismo modo, si el número de servidores back-end es superior al recuento de reintentos y si los servidores back-end restablecen la conexión, el dispositivo reenvía el restablecimiento al cliente. Considere un caso con tres servidores back-end y el recuento de reintentos establecido como dos. Si los tres servidores restablecen la conexión, el dispositivo envía una respuesta de restablecimiento al cliente.

Configurar reintento de solicitud para el método GET

Para configurar la función de reintento para el método GET, debe completar los siguientes pasos.

  1. Habilitar AppQoE
  2. Agregar acción AppQoE
  3. Agregar directiva AppQoE
  4. Vincular la directiva AppQoE al servidor virtual de equilibrio de carga

Habilitar AppQoE

En el símbolo del sistema, escriba: enable ns feature appqoe

Agregar acción AppQoE

Debe configurar una acción AppQoE para especificar si quiere que el dispositivo vuelva a intentarlo después de un restablecimiento de TCP y el número de intentos de reintento.

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

Ejemplo:

add appqoe action reset_action –retryOnReset YES –numretries 5

Donde, RetryOnReset. Habilite el reintento si el servidor back-end restablece una conexión TCP. intentos numéricos. Reintentar contar.

Agregar directiva AppQoE

Para implementar AppQoE, debe configurar la directiva AppQoE para priorizar la solicitud HTTP o SSL entrante en una cola específica.

En el símbolo del sistema, escriba:

add appqoe policy <name> -rule <expression> -action <string>

Ejemplo:

add appqoe policy reset_policy -rule http.req.method.eq(get) -action reset_action

Vincular la directiva appqoe al servidor virtual de equilibrio de carga

Cuando un servidor back-end restablece una solicitud de paquete TCP y si quiere que el servidor virtual de equilibrio de carga reenvíe la solicitud al siguiente servicio disponible, debe enlazar el servidor virtual de equilibrio de carga a la directiva AppQoE.

En el símbolo del sistema, escriba:

bind lb vserver <name> ((<serviceName> (-policyName <string> [-priority <positive_integer>] [-gotoPriorityExpression <expression>] [-type ( REQUEST | RESPONSE )]

Ejemplo:

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

Configurar reintento de solicitud para solicitudes POST

Siempre debe tener precaución al volver a cargar las solicitudes de equilibrio que escriben datos en el servidor back-end. Para tales solicitudes, asegúrese de que la longitud del contenido sea corta. Si la longitud del contenido es larga, puede resultar en el consumo de recursos. Siga los pasos que se indican a continuación para configurar el equilibrio de recarga para las solicitudes POST.

  1. Habilitar AppQoE
  2. Agregar acción AppQoE
  3. Agregar directiva AppQoE
  4. Vincular la directiva AppQoE al servidor virtual de equilibrio de carga

Habilitar AppQoE

En el símbolo del sistema, escriba:

enable ns feature appqoe

Agregar acción Appqoe

Debe agregar una acción AppQoE para volver a intentarlo después de un restablecimiento de TCP y número de intentos de reintento.

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

Ejemplo:

add appqoe action reset_action –retryOnReset YES –numretries 5

Agregar directiva Appqoe

Para implementar AppQoE debe configurar la directiva AppQoE para definir cómo poner en cola las conexiones en una cola específica.

En el símbolo del sistema, escriba:

add appqoe policy <name> -rule <expression> -action <string>

Ejemplo:

add appqoe policy reset_policy -rule HTTP.REQ.CONTENT_LENGTH.le(2000) -action reset_action

Nota:

Puede utilizar esta configuración si prefiere restringir la función de reintento de solicitud para una longitud de contenido inferior a 2000.

Vincular el servidor virtual de equilibrio de carga a la directiva AppQoE

Cuando un servidor back-end restablece una solicitud de paquete TCP y si quiere que el servidor virtual de equilibrio de carga reenvíe la solicitud al siguiente servicio disponible a través de una cola específica, debe enlazar el servidor virtual de equilibrio de carga a la directiva AppQoE.

En el símbolo del sistema, escriba:

bind lb vserver <name> ((<serviceName> (-policyName <string> [-priority <positive_integer>] [-gotoPriorityExpression <expression>] [-type ( REQUEST | RESPONSE )]

Ejemplo: bind lb vserver v1 -policyName reset_policy -type REQUEST -priority 1

Configurar la directiva AppQoE para reintentar solicitudes mediante la GUI de Citrix ADC

  1. Vaya a AppExpert > AppQoE > Directivas.
  2. En la página Directivas de AppQoE, haga clic en Agregar.
  3. En la página Crear una directiva de AppQoE, establezca los siguientes parámetros: a. Nombre. Nombre de directiva AppQoE b. Acción. Agregar o modificar una acción. Para crear una acción, consulte Crear acción AppQoE la sección. c. Expresión. Seleccione o escriba expresiónHTTP.REQ.CONTENT_LENGTH.le (2000) de directiva.
  4. Haga clic en Crear y cerrar.

    Directiva de AppQoE para reintento de solicitud o equilibrio de recarga

Configurar la acción de AppQoE para el equilibrio de reintentos de solicitud mediante la GUI de Citrix ADC

  1. Vaya a AppExpert > AppQoE > Acción.
  2. En la página Acciones de AppQoE, haga clic en Agregar.
  3. En la página Crear acción de AppQoE, establezca los siguientes parámetros para reintentar al restablecer TCP: a. Vuelva a intentar reiniciar TCP. Active la casilla de verificación para habilitar la acción de reintento para restablecer TCP. b. Reintentar recuento. Introduzca el recuento de reintentos.
  4. Haga clic en Crear y cerrar.

    Configurar la acción de AppQoE para el equilibrio de reintento de solicitud

Configurar el reintento de solicitud para el método GET cuando el servidor back-end se restablece en el establecimiento TCP SYN

La configuración de CLI y GUI es similar a los pasos seguidos para el método GET. Para obtener más información, consulte Configurar intento de solicitud para el método GET la sección. cuando el servidor back-end restablece una sección de conexión.

Solicitar reintento si el servidor back-end restablece la conexión TCP