Citrix ADC

Konfigurieren der Persistenz basierend auf benutzerdefinierten Regeln

Wenn eine regelbasierte Persistenz konfiguriert ist, erstellt die Citrix 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 oder standardmäßigen 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 anhand benutzerdefinierter Regeln mit der CLI

Geben Sie an der Eingabeaufforderung 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 mit der GUI

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

Persistenzregel konfigurieren

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 Anforderungs-Nutzlast

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, der für die erste Anforderung ausgewählt wurde.

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

Konfigurieren der Persistenz basierend auf benutzerdefinierten Regeln