ADC

Persistenz basierend auf benutzerdefinierten Regeln konfigurieren

Warnung:

Die Verwendung klassischer Ausdrücke für die Persistenzregel in der Lastausgleichsfunktion wurde entfernt und ist ab Version 13.1 für die Filterregel auf der NetScaler-Appliance nicht mehr verfügbar. Citrix empfiehlt, diese Richtlinienausdrücke nicht über die NetScaler-Befehlszeilenschnittstelle, die NetScaler GUI oder die Nitro-Automatisierung zu verwenden. Weitere Informationen finden Sie in Tabelle 1 und Tabelle 2 auf der Seite Classic Policy Deprecation FAQ .

Wenn eine regelbasierte Persistenz konfiguriert ist, erstellt die NetScaler-Appliance eine Persistenzsitzung basierend auf dem Inhalt der übereinstimmenden Regel, bevor sie die Anforderung an den Dienst leitet, der von der konfigurierten Lastausgleichsmethode ausgewählt wurde. Später leitet es alle Anfragen, die mit der Regel übereinstimmen, an denselben Dienst weiter. Sie können regelbasierte Persistenz für Dienste vom Typ HTTP, SSL, RADIUS, ANY, TCP und SSL_TCP konfigurieren.

Regelbasierte Persistenz erfordert einen klassischen oder erweiterten Richtlinienausdruck. Sie können einen klassischen Ausdruck verwenden, um Anforderungskopfzeilen auszuwerten, oder Sie können einen erweiterten Richtlinienausdruck verwenden, um Anforderungskopfzeilen, Webformulardaten in einer Anforderung, Antwort-Header oder Antwortkörper auszuwerten. Sie können beispielsweise einen klassischen Ausdruck verwenden, um die Persistenz basierend auf dem Inhalt des HTTP-Host-Headers zu konfigurieren. Sie können auch einen erweiterten Richtlinienausdruck verwenden, um die Persistenz basierend auf Anwendungssitzungsinformationen in einem Antwort-Cookie oder einem benutzerdefinierten Header zu konfigurieren. Weitere Informationen zum Erstellen und Verwenden klassischer und erweiterter Richtlinienausdrücke finden Sie unter Richtlinien und Ausdrücke.

Die Ausdrücke, die Sie konfigurieren können, hängen von der Art des Dienstes ab, für den Sie regelbasierte Persistenz konfigurieren. Beispielsweise sind bestimmte RADIUS-spezifische Ausdrücke für andere Protokolle als RADIUS nicht zulässig, und TCP-Options-basierte Ausdrücke sind für andere Diensttypen als den Typ ANY nicht zulässig. Für TCP- und SSL_TCP-Diensttypen können Sie Ausdrücke verwenden, die TCP/IP-Protokolldaten, Layer-2-Daten, TCP-Optionen und TCP-Nutzlasten auswerten.

Hinweis: Für einen Anwendungsfall, der die Konfiguration regelbasierter Persistenz auf Basis von Financial Information Exchange (“FIX”) -Protokolldaten beinhaltet, die über TCP übertragen werden, finden Sie unter Konfigurieren regelbasierter Persistenz basierend auf einem Name-Wert-Paar in einem TCP-Byte-Stream.

Regelbasierte Persistenz kann verwendet werden, um die Persistenz mit Entitäten wie Citrix SD-WAN-Appliances, Citrix SD-WAN SD-WAN-Plug-Ins, Cache-Servern und Anwendungsservern aufrechtzuerhalten.

Hinweis: Auf einem beliebigen virtuellen Server können Sie keine regelbasierte Persistenz für die Antworten konfigurieren.

Um die Persistenz basierend auf einer benutzerdefinierten Regel zu konfigurieren, konfigurieren Sie zunächst die Persistenz wie unter Persistenztypen konfigurieren beschrieben, die keine Regel erfordern, und legen den Persistenztyp auf REGEL fest. Sie können dann die folgenden Verfahren ausführen. Sie können die regelbasierte Persistenz mit dem Konfigurationsdienstprogramm oder der CLI konfigurieren.

So konfigurieren Sie die Persistenz basierend auf benutzerdefinierten Regeln über die CLI

Geben Sie an der Befehlszeile Folgendes ein:

set lb vserver <vserverName> [-rule <expression>][-resRule <expression>]
<!--NeedCopy-->

Beispiel:

set lb vserver vsvr_name –rule http.req.header("cookie").value(0).typecast_nvlist_t('=',';').value("server")

set lb vserver vsvr_name –resrule http.res.header("set-cookie").value(0).typecast_nvlist_t('=',';').value("server")

<!--NeedCopy-->

So konfigurieren Sie die Persistenz basierend auf benutzerdefinierten Regeln über die GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Serverund öffnen Sie den virtuellen Server.
  2. Wählen Sie im Abschnitt Persistenz den Persistenztyp aus, der Ihren Anforderungen entspricht. Der am besten geeignete Persistenztyp für den virtuellen Server ist als Optionsschaltflächen verfügbar. Andere Persistenztypen, die für den bestimmten virtuellen Servertyp gelten, können aus der Liste Andere ausgewählt werden.

Hinweis

Vor NetScaler Release 12.0 Build 56.20 sind alle Persistenztypen in einer einzigen Persistence-Dropdownliste ohne Optionsschaltflächen verfügbar.

Beispiel: Klassischer Ausdruck für eine Anforderungsnutzlast

Der folgende klassische Ausdruck erstellt eine Persistenzsitzung basierend auf dem Vorhandensein eines User-Agent-HTTP-Headers, der die Zeichenfolge “MyBrowser” enthält, und leitet alle nachfolgenden Clientanforderungen, die diesen Header und diese Zeichenfolge enthalten, an denselben Server weiter, der für die ursprüngliche Anforderung ausgewählt wurde.

http header User-Agent contains MyBrowser
<!--NeedCopy-->

Beispiel: Erweiterter Richtlinienausdruck für einen Anforderungskopf

Der folgende erweiterte Richtlinienausdruck macht dasselbe wie der vorherige klassische Ausdruck.

HTTP.REQ.HEADER (User-Agent) .CONTAINS (MyBrowser)

Der folgende Ausdruck untersucht Antworten auf “Server” -Cookies und leitet dann alle Anfragen, die dieses Cookie enthalten, an denselben Server weiter, der für die ursprüngliche Anforderung ausgewählt wurde.

HTTP.RES.HEADER(“SET-COOKIE”).VALUE(0).TYPECAST_NVLIST_T(‘=’,’;’).VALUE(“server”)

Persistenz basierend auf benutzerdefinierten Regeln konfigurieren