ADC

Wiederholungsversuche anfordern, wenn der Backend-Server die TCP-Verbindung zurücksetzt

Wenn ein Back-End-Server eine TCP-Verbindung zurücksetzt, leitet die Funktion zur Wiederholung der Anforderung die Anfrage an den nächsten verfügbaren Server weiter, anstatt den Reset an den Client zu senden. Durch den Reload-Balancing speichert der Client RTT, wenn die Appliance dieselbe Anfrage an den nächsten verfügbaren Dienst initiiert.

So funktioniert die Wiederholung der Anfrage, wenn der Backend-Server eine TCP-Verbindung zurücksetzt

Das folgende Diagramm zeigt, wie Komponenten miteinander interagieren.

So funktioniert Wiederholung der Anfrage für das Zurücksetzen der TCP-Verbindung

  1. Der Prozess beginnt mit der Aktivierung der Appqoe-Funktion auf Ihrer Appliance.
  2. Wenn der Client eine HTTP- oder HTTPS-Anfrage sendet, sendet der virtuelle Lastausgleichsserver die Anfrage an den Back-End-Server.
  3. Wenn der angeforderte Dienst nicht verfügbar ist, setzt der Back-End-Server die TCP-Verbindung zurück.
  4. Wenn in der Appqoe-Konfiguration “Wiederholung” mit der gewünschten Anzahl von Wiederholungsversuchen aktiviert ist, verwendet der virtuelle Lastausgleichsserver den konfigurierten Load Balancing-Algorithmus, um die Anforderung an den nächsten verfügbaren Anwendungsserver weiterzuleiten.
  5. Nachdem der virtuelle Lastausgleichsserver die Antwort erhalten hat, leitet die Appliance die Antwort an den Client weiter.
  6. Wenn die verfügbaren Back-End-Server gleich oder kleiner als die Wiederholungsanzahl sind und wenn alle Server einen Reset senden, würde die Appliance einen internen 500-Serverfehler beantworten. Betrachten Sie ein Szenario mit fünf verfügbaren Servern und der Wiederholungsanzahl, die auf sechs festgelegt ist. Wenn alle fünf Server die Verbindung zurücksetzen, gibt die Appliance einen internen 500-Serverfehler an den Client zurück.
  7. Wenn die Anzahl der Back-End-Server höher ist als die Wiederholungsanzahl und wenn die Back-End-Server die Verbindung zurücksetzen, leitet die Appliance den Reset an den Client weiter. Stellen Sie sich ein Szenario mit drei Back-End-Servern und der Wiederholungsanzahl vor, die auf zwei festgelegt ist. Wenn die drei Server die Verbindung zurücksetzen, sendet die Appliance eine Reset-Antwort an den Client.

Konfigurieren der Wiederholung der Anfrage für die GET-Methode

Um die Wiederholungsfunktion für die GET-Methode zu konfigurieren, müssen Sie die folgenden Schritte ausführen.

  1. Aktivieren Sie AppQoE
  2. Add AppQoE action
  3. Add AppQoE policy
  4. Binden Sie die AppQoE -Richtlinie an den virtuellen Server mit Lastenausgleich

Aktivieren Sie AppQoE

Geben Sie an der Eingabeaufforderung Folgendes ein: enable ns feature appqoe

Add AppQoE action

Sie müssen eine AppQoE-Aktion konfigurieren, um anzugeben, ob die Appliance nach einem TCP-Reset und die Anzahl der Wiederholungsversuche erneut versucht werden soll.

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

Beispiel:

add appqoe action reset_action –retryOnReset YES –numretries 5

Wo, RetryonReset. Aktivieren Sie “Wiederholen”, wenn der Back-End-Server eine TCP-Verbindung zurücksetzt. numretries. Wiederholte Anzahl.

Add AppQoE policy

Um AppQoE zu implementieren, müssen Sie die AppQoE-Richtlinie konfigurieren, um eingehende HTTP- oder SSL-Anfragen in einer bestimmten Warteschlange zu priorisieren.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

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

Binden Sie die Appqoe-Richtlinie an den virtuellen Server mit Lastenausgleich

Wenn ein Backend-Server eine TCP-Paketanforderung zurücksetzt und der virtuelle Lastausgleichsserver die Anforderung an den nächsten verfügbaren Dienst weiterleiten soll, müssen Sie den virtuellen Lastausgleichsserver an die AppQoE-Richtlinie binden.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

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

Konfigurieren der Wiederholung der Anfrage für POST-Anfragen

Sie müssen immer Vorsicht walten lassen, wenn Sie Kontostandsanforderungen neu laden, die Daten in den Backend-Server schreiben. Stellen Sie bei solchen Anfragen sicher, dass die Inhaltslänge kurz ist. Wenn die Inhaltslänge lang ist, kann dies zum Ressourcenverbrauch führen. Befolgen Sie die unten angegebenen Schritte, um den Reload-Balancing für POST-Anfragen zu konfigurieren.

  1. Aktivieren Sie AppQoE
  2. Add AppQoE action
  3. Add AppQoE policy
  4. Binden Sie die AppQoE -Richtlinie an den virtuellen Server mit Lastenausgleich

Aktivieren Sie AppQoE

Geben Sie an der Eingabeaufforderung Folgendes ein:

enable ns feature appqoe

Appqoe Aktion hinzufügen

Sie müssen eine AppQoE-Aktion hinzufügen, die Sie nach einem TCP-Reset und der Anzahl der Wiederholungsversuche erneut versuchen können.

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

Beispiel:

add appqoe action reset_action –retryOnReset YES –numretries 5

Appqoe Richtlinie hinzufügen

Um AppQoE zu implementieren, müssen Sie die AppQoE-Richtlinie konfigurieren, um zu definieren, wie die Verbindungen in einer bestimmten Warteschlange in die Warteschlange gestellt werden.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

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

Hinweis:

Sie können diese Konfiguration verwenden, wenn Sie es vorziehen, die Funktion zur Wiederholung der Anforderung für eine Inhaltslänge von weniger als 2000 einzuschränken.

Binden von virtuellen Lastenausgleichsserver an AppQoE-Richtlinie

Wenn ein Backend-Server eine TCP-Paketanforderung zurücksetzt und der virtuelle Lastausgleichsserver die Anforderung über eine bestimmte Warteschlange an den nächsten verfügbaren Dienst weiterleitet, müssen Sie den virtuellen Lastausgleichsserver an die AppQoE-Richtlinie binden.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

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

Konfigurieren der AppQoE-Richtlinie für die Wiederholung von Anfragen mithilfe der Citrix ADC GUI

  1. Navigieren Sie zu AppExpert > AppQoe > Richtlinien.
  2. Klicken Sie auf der AppQoe-Richtlinienseite auf Hinzufügen.
  3. Legen Sie auf der Seite Create an AppQoE Policy die folgenden Parameter fest: a. Name. AppQoE -Richtlinienname b. Aktion. Fügen Sie eine Aktion hinzu oder bearbeiten Sie sie. Informationen zum Erstellen einer Aktion finden Sie im Abschnitt AppQoE-Aktion erstellen . c. Ausdruck. Wählen Sie einen HTTP.REQ.CONTENT_LENGTH.le (2000) Richtlinienausdruck aus oder
  4. Klicken Sie auf Erstellen und Schließen.

    AppQoE -Richtlinie für Wiederholungsversuche oder Neulastausgleich

Konfigurieren der AppQoE-Aktion für den Wiederholungsausgleich von Anfragen mithilfe der Citrix ADC GUI

  1. Navigieren Sie zu AppExpert > AppQoe > Action.
  2. Klicken Sie auf der AppQoE -Aktionsseite auf Hinzufügen.
  3. Legen Sie auf der Seite AppQoE Action erstellen die folgenden Parameter für die Wiederholung beim TCP-Reset fest: a. Wiederholen Sie es bei TCP-Reset. Aktivieren Sie das Kontrollkästchen, um die Wiederholungsaktion für TCP-Reset zu aktivieren. b. Wiederholen Sie die Anzahl. Geben Sie die Anzahl der Wiederholungen ein.
  4. Klicken Sie auf Erstellen und Schließen.

    Konfigurieren der AppQoE-Aktion für den Wiederholungsausgleich von Anfragen

Konfigurieren der Wiederholung der Anfrage für die GET-Methode beim Zurücksetzen des Backend-Servers bei TCP-SYN-Einrichtung

Die CLI- und GUI-Konfiguration ähnelt den Schritten, die für die GET-Methode verfolgt werden. Weitere Informationen finden Sie unter Abschnitt Konfigurieren von Anforderungstversuchen für GET-Methode. wenn der Back-End-Server einen Verbindungsabschnitt zurücksetzt.

Wiederholungsversuche anfordern, wenn der Backend-Server die TCP-Verbindung zurücksetzt