Konfigurieren einer HTTP-Legende

Beim Konfigurieren einer HTTP-Legende geben Sie den Typ der Anforderung (HTTP oder HTTPS), das Ziel und das Format der Anforderung, das erwartete Format der Antwort und schließlich den Teil der Antwort an, den Sie analysieren möchten.

Für das Ziel geben Sie entweder die IP-Adresse und den Port des HTTP-Callout-Agents an oder greifen einen virtuellen Server für Lastausgleich, Inhaltswechsel oder Cache-Umleitung an, um die HTTP-Callout-Anforderungen zu verwalten. Im ersten Fall werden die HTTP-Callout-Anforderungen direkt an den HTTP-Callout-Agent gesendet. Im zweiten Fall werden die HTTP-Callout-Anforderungen an die virtuelle IP-Adresse (VIP) des angegebenen virtuellen Servers gesendet. Der virtuelle Server verarbeitet die Anforderung dann auf die gleiche Weise, wie er eine Clientanforderung verarbeitet. Wenn Sie beispielsweise erwarten, dass eine große Anzahl von Callouts generiert wird, können Sie Instanzen des HTTP-Callout-Agents auf mehreren Servern konfigurieren, diese Instanzen (als Dienste) an einen virtuellen Lastausgleichsserver binden und dann den virtuellen Lastausgleichsserver in der HTTP-Callout-Konfiguration angeben. Der virtuelle Lastausgleichsserver gleicht dann die Last auf den konfigurierten Instanzen aus, wie durch den Lastausgleichsalgorithmus bestimmt.

Für das Format der HTTP-Callout-Anforderung können Sie die einzelnen Attribute der HTTP-Callout-Anforderung (eine attributbasierte HTTP-Legende) angeben, oder Sie können die gesamte HTTP-Callout-Anforderung als Standard-Syntaxausdruck angeben (eine ausdrucksbasierte HTTP-Legende).

Hinweis: Die Appliance überprüft nicht die Gültigkeit der Anforderung. Sie müssen sicherstellen, dass es sich bei der Anforderung um eine gültige Anforderung handelt. Eine falsche oder unvollständige HTTP-Callout-Konfiguration führt zu einer Runtime-UNDEF-Bedingung, die keiner Aktion zugeordnet ist. Die UNDEF-Bedingung aktualisiert lediglich den Leistungsindikator Nicht definierte Treffer, mit dem Sie eine falsch konfigurierte HTTP-Legende beheben können. Die Appliance analysiert jedoch die HTTP-Callout-Anforderung, damit Sie bestimmte Citrix ADC Funktionen für die Legende konfigurieren können. Dies kann zu einem HTTP-Callout führen, der sich selbst aufruft. Hinweise zur Beschriftungsrekursion und zur Vermeidung dieser Beschriftungen finden Sie unterVermeiden von HTTP-Callout-Rekursion.

Unabhängig davon, ob Sie HTTP-Anforderungsattribute oder einen Ausdruck verwenden, um das Format der HTTP-Callout-Anforderung zu definieren, müssen Sie das Format der Antwort vom HTTP-Callout-Agent und den Teil der Antwort angeben, den Sie auswerten möchten. Die Antwort kann ein boolescher Wert, eine Zahl oder Text sein. Der Teil der Antwort, den Sie auswerten möchten, wird durch einen Ausdruck angegeben. Wenn Sie beispielsweise angeben, dass die Antwort Text enthält, können Sie mitHTTP.RES.BODY(<unit>) `angeben, dass die Appliance nur die ersten <unit> Bytes der Antwort vom Callout-Agent auswerten muss.

In der Befehlszeile erstellen Sie zunächst eine HTTP-Legende mithilfe des Befehls add. Wenn Sie eine Legende hinzufügen, werden alle Parameter auf den Standardwert NONE festgelegt, mit Ausnahme der HTTP-Methode, die auf den Standardwert GET festgelegt ist. Anschließend konfigurieren Sie die Parameter der Legende mithilfe des Befehls set. Der Befehl set wird verwendet, um beide Arten von Callouts zu konfigurieren (attributsbasiert und ausdrucksbasiert). Der Unterschied liegt in den Parametern, die für die Konfiguration der beiden Arten von Callouts verwendet werden. Dementsprechend enthalten die folgenden Befehlszeilenanweisungen einen set-Befehl zum Konfigurieren einer attributsbasierten Legende und einen set-Befehl zum Konfigurieren einer ausdrucksbasierten Legende. Im Konfigurationsprogramm werden alle diese Konfigurationsaufgaben in einem einzigen Dialogfeld ausgeführt.

Hinweis: Bevor Sie eine HTTP-Legende in eine Richtlinie einfügen, können Sie alle konfigurierten Parameter mit Ausnahme des Rückgabetyps ändern. Sobald sich eine HTTP-Legende in einer Richtlinie befindet, können Sie einen Ausdruck, der in der Legende konfiguriert ist, nicht vollständig ändern. Beispielsweise können Sie HTTP.REQ.HEADER (“myval”) nicht in CLIENT.IP.SRC ändern. Sie können jedoch die Operatoren und Argumente ändern, die an den Ausdruck übergeben werden. Sie können z. B.HTTP.REQ.HEADER("myVal1") zuHTTP.REQ.HEADER("myVal2") oderHTTP.REQ.HEADER("myVal") zu wechselnHTTP.REQ.HEADER("myVal").AFTER_STR(<string>) . Wenn der Befehl set fehlschlägt, erstellen Sie eine neue HTTP-Legende.

Die HTTP-Callout-Konfiguration beinhaltet die Konfiguration von Standard-Syntaxausdrücken. Weitere Informationen zum Konfigurieren von Standard-Syntaxausdrücken finden Sie unter Konfigurieren von Standard-Syntaxausdrücken: Erste Schritte.

So konfigurieren Sie eine HTTP-Legende mit der Befehlszeilenschnittstelle

Führen Sie an der Eingabeaufforderung die folgenden Schritte aus:

  1. Erstellen Sie eine HTTP-Legende.

    add policy httpCallout <name>

    Beispiel

    add policy httpCallout mycallout
    
  2. Konfigurieren Sie die Details der HTTP-Legende.

    • Geben Sie Folgendes ein, um eine attributbasierte HTTP-Legende zu konfigurieren:
    set policy httpCallout <name> [-IPAddress <ip_addr|ipv6_addr|\*>] [-port <port|\*>] [-vServer <string>] [-returnType <returnType>] [-httpMethod ( GET | POST )] [-hostExpr <string>] [-urlStemExpr <string>] [-headers <name(value)> ...] [-parameters <name(value)> ...] [-resultExpr <string>]
    

    Beispiel:

    > set policy httpCallout mycallout -vserver lbv1 -returnType num -httpMethod GET -hostExpr 'http.req.header("Host")'
    -urlStemExpr "http.req.url" -parameters Name("My Name") -headers Name("MyHeader")
    -resultExpr "http.res.body(10000).length"
    
    

    Um eine ausdrucksbasierte HTTP-Legende zu konfigurieren, geben Sie Folgendes ein:

    set policy httpCallout <name> [-vServer <string>] [-returnType <returnType>] [-httpMethod ( GET | POST )] [-fullReqExpr <string>] [-resultExpr <string>]
    

    Beispiel:

    > set policy httpCallout mycallout1 -vserver lbv1 -returnType num -httpMethod GET
    -fullReqExpr q{"GET " + http.req.url + "HTTP/" + http.req.version.major + "." + http.req.version.minor.sub(1)+
    "r\nHost:10.101.10.10\r\nAccept: \*/\*\r\n\r\n"}
    
  3. Überprüfen Sie die Konfigurationen der HTTP-Legende.

    show policy httpCallout <name>

So konfigurieren Sie eine HTTP-Legende mit dem Konfigurationsdienstprogramm

  1. Navigieren Sie zu AppExpert > HTTP-Callouts.
  2. Klicken Sie im Detailbereich auf Hinzufügen.
  3. Konfigurieren Sie im Dialogfeld HTTP-Legende erstellen die Parameter der HTTP-Legende. Um eine Beschreibung des Parameters zu erhalten, bewegen Sie den Mauszeiger über das Kontrollkästchen.
  4. Klicken Sie auf Create und dann auf Close.