ADC

Wiederholung 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 das Reload-Balancing speichert der Client RTT, wenn die Appliance dieselbe Anfrage an den nächsten verfügbaren Dienst initiiert.

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

Das folgende Diagramm zeigt, wie Komponenten miteinander interagieren.

So funktioniert die Wiederholung von Anfragen für das Zurücksetzen der TCP-Verbindung

  1. Der Vorgang 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“ aktiviert ist und die gewünschte Anzahl von Wiederholungsversuchen angegeben ist, verwendet der virtuelle Lastausgleichsserver den konfigurierten Load-Balancing-Algorithmus, um die Anfrage 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 Backend-Server gleich oder kleiner als die Anzahl der Wiederholungsversuche sind und wenn alle Server einen Reset senden, würde die Appliance einen internen Serverfehler von 500 melden. 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 Serverfehler von 500 an den Client zurück.
  7. In ähnlicher Weise leitet die Appliance den Reset an den Client weiter, wenn die Anzahl der Backend-Server die Anzahl der Wiederholungsversuche übersteigt und wenn die Backend-Server die Verbindung zurücksetzen. 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 Lastausgleichsserver

Aktivieren Sie AppQoE

Geben Sie in der Befehlszeile Folgendes ein: enable ns feature appqoe

Add AppQoE action

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

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

Beispiel:

add appqoe action reset_action –retryOnReset YES –numretries 5

Wobei retryOnReset. Aktivieren Sie “Wiederholen”, wenn der Back-End-Server eine TCP-Verbindung zurücksetzt. Zahlen. Wiederholte Anzahl.

Add AppQoE policy

Um AppQoE zu implementieren, müssen Sie die AppQoE-Richtlinie so konfigurieren, dass eingehende HTTP- oder SSL-Anfragen in einer bestimmten Warteschlange priorisiert werden.

Geben Sie in der Befehlszeile 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 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 in der Befehlszeile 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 Sie den Wiederholungsversuch für POST-Anfragen

Sie müssen immer vorsichtig sein, wenn Sie Balancing-Anfragen 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 zu einem Ressourcenverbrauch führen. Folgen Sie den unten angegebenen Schritten, 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 Lastausgleichsserver

Aktivieren Sie AppQoE

Geben Sie in der Befehlszeile 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 in der Befehlszeile 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 erneuten Anforderung von Anfragen für Inhalte mit einer Länge von weniger als 2000 einzuschränken.

Binden von virtuellen Lastenausgleichsserver an AppQoE-Richtlinie

Wenn ein Backend-Server eine TCP-Paketanforderung zurücksetzt und Sie möchten, dass der virtuelle Lastausgleichsserver die Anfrage ü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 in der Befehlszeile 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 Sie die AppQoE-Richtlinie für den erneuten Versuch von Anfragen mithilfe der NetScaler GUI

  1. Navigieren Sie zu AppExpert > AppQoe > Richtlinien.
  2. Klicken Sie auf der Seite AppQoE-Richtlinien auf Hinzufügen.
  3. Stellen Sie auf der Seite „ AppQoE-Richtlinie erstellen“ die folgenden Parameter ein : 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. Expression. Wählen oder geben Sie den Richtlinienausdruck HTTP.REQ.CONTENT_LENGTH.le (2000) ein.
  4. Klicken Sie auf Erstellen und Schließen.

Konfigurieren Sie die AppQoE-Aktion für den erneuten Anforderungsausgleich mithilfe der NetScaler GUI

  1. Navigieren Sie zu AppExpert > AppQoe > Action.
  2. Klicken Sie auf der Seite AppQoE-Aktionen auf Hinzufügen.
  3. Stellen Sie auf der Seite AppQoE-Aktion erstellen die folgenden Parameter für den erneuten Versuch beim TCP-Reset ein: a. Versuchen Sie es erneut beim TCP-Reset. Aktivieren Sie das Kontrollkästchen, um die Wiederholungsaktion für den TCP-Reset zu aktivieren. b. Anzahl der Wiederholungsversuche. Geben Sie die Anzahl der Wiederholungsversuche ein.
  4. Klicken Sie auf Erstellen und Schließen.

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.

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