ADC

Persistenz basierend auf benutzerdefinierten Regeln konfigurieren

Warnung:

Die Verwendung von klassischen Ausdrücken für die Persistenzregel in der Lastenausgleichsfunktion ist veraltet. Klassische Ausdrücke werden jedoch entfernt und sind für die Filterregel auf der Citrix ADC Appliance ab Version 13.1 nicht mehr verfügbar.

Wenn eine regelbasierte Persistenz konfiguriert ist, erstellt die NetScaler ADC-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 Syntaxausdruck oder einen Standard-Syntaxausdruck. Sie können einen klassischen Ausdruck zum Auswerten von Anforderungskopfzeilen verwenden, oder Sie können einen Standard-Syntaxausdruck verwenden, um Anforderungskopfzeilen, Webformulardaten in einer Anforderung, Antwortkopfzeilen oder Antwortkörpern 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 Standardsyntaxausdruck verwenden, um die Persistenz basierend auf Informationen zu Anwendungssitzungen in einem Antwort-Cookie oder einem benutzerdefinierten Header zu konfigurieren. Weitere Informationen zum Erstellen und Verwenden von klassischen Syntaxausdrücken und Standardsyntaxausdrücken 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 String enthalten, an denselben Server, der für die erste Anforderung ausgewählt wurde.

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

Beispiel: Standard-Syntaxausdruck für einen Anforderungskopf

Der folgende Standardsyntaxausdruck 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 Anfrage ausgewählt wurde.

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

Persistenz basierend auf benutzerdefinierten Regeln konfigurieren