Syntax für Inhaltsregel (Muster)

Dieser Artikel beschreibt, wie die Syntax für die Inhaltsregel (das Muster) für die Komponente CBR verwendet wird, und enthält Szenarien und Beispiele zu ihrer Verwendung.

Syntax für Inhaltsregel (Muster)

Achtung: Nur gültig bei Auswahl von content als Regeltyp.
Geben Sie die Mustersyntax ein, die Sie verwenden möchten, und beachten Sie die folgenden Einschränkungen:
  • Im Muster dürfen keine Leerzeichen verwendet werden.
  • Sonderzeichen, außer wenn ihnen ein umgekehrter Schrägstrich (\) vorangestellt wird:
    *
    Platzhalter (stimmt mit 0 bis x beliebigen Zeichen überein)
    (
    linke runde Klammer, die für logische Gruppierung verwendet wird
    )
    rechte runde Klammer, die für logische Gruppierung verwendet wird
    &
    Logisches Und-Zeichen
    |
    Logisches Oder-Zeichen
    !
    Logisches Nicht

Reservierte Schlüsselwörter

Auf reservierte Schlüsselwörter folgt immer ein Gleichheitszeichen "=".

Method
HTTP-Methode in der Anforderung, z. B. GET, POST
URI
Pfad der URL-Anforderung (Groß-/Kleinschreibung muss beachtet werden)
Version
Spezifische Version der Anforderung, HTTP/1.0 oder HTTP/1.1
Host
Wert vom Host: Header (Groß-/Kleinschreibung kann ignoriert werden)
Wichtig: In HTTP/1.0-Protokollen optional.
<Schlüssel>
Ein gültiger HTTP-Headername, nach dem Dispatcher suchen kann. Beispiele für HTTP-Header sind User-Agent und Connection, Referrer
Ein Browser, in dem http://www.company.com/path/webpage.htm aufgerufen wird, kann folgende Werte zurückgeben:
Method=GET
URI=/path/webpage.htm
Version=HTTP/1.1
Host=www.company.com
Connection=Keep-Alive
Referer=http://www.company.com/path/parentwebpage.htm
Die Betriebssystemshell kann Sonderzeichen, z. B. "&", interpretieren und in alternativen Text umwandeln, bevor diese vom Befehl cbrcontrol ausgewertet werden. Wenn Sie den Befehl über dscontrol, cbrcontrol oder eine Konfigurationsdatei eingeben, setzen Sie die Sonderzeichen in doppelte Anführungsanzeichen (" "). Der folgende Befehl ist z. B. nur gültig, wenn Sie die Eingabeaufforderung cbrcontrol>> oder eine Konfigurationsdatei verwenden:
rule add 10.1.203.4@80@cbr_prod_rule_ek type content
  pattern "uri=/nipoek/*"
Damit dieser Befehl mit Verwendung von Sonderzeichen an der Eingabeaufforderung des Betriebssystems angegeben werden kann, müssen Sie die den gesamten Befehl in Anführungszeichen einschließen:
cbrcontrol "rule add 10.1.203.4@80@cbr_prod_rule_ek type content
  pattern uri=/nipoek/*"

Fehlen die Anführungszeichen, könnte beim Speichern der Regel in CBR ein Teil des Musters abgeschnitten werden.

Szenarien und Beispiel für die Verwendung von Mustersyntaxen

Szenario 1
Das Setup für einen einzelnen Clusternamen erfordert eine Gruppe von Web-Servern für Standard-HTML-Inhalt, eine weitere Gruppe von Web-Servern mit WebSphere Application Server für Servletanforderungen und eine Gruppe von Lotus-Notes-Servern für NSF-Dateien. Der Zugriff auf die Clientdaten ist erforderlich, um zwischen den angeforderten Seiten unterscheiden zu können. Die Daten müssen außerdem an die jeweils geeigneten Server gesendet werden. Die Erkennungsregeln für Inhaltsmustererkennung ermöglichen die für diese Tasks notwendige Trennung. Es wird eine Reihe von Regeln konfiguriert, die die nötige Trennung der Anforderungen automatisch vornehmen. Mit den folgenden Befehlen können Sie die genannte Trennung in drei Gruppen erreichen:
>>rule add cluster1@80@servlets type content pattern "uri=*/servlet/*" priority 1
>>rule uses cluster1@80@servlets server1+server2
>>rule add cluster1@80@notes type content pattern "uri=*.nsf*" priority 2
>>rule uses cluster1@80@notes server3+server4

Wenn Load Balancer eine Anforderung für eine NSF-Datei empfängt, wird zuerst die servlets-Regel angewendet, bei der jedoch keine Übereinstimmung gefunden wird. Anschließend wird die Anforderung mit der notes-Regel abgeglichen und eine Übereinstimmung festgestellt. Die Clientdaten werden auf Server3 und Server4 verteilt.

Szenario 2
Ein weiteres allgemeines Szenario ist die Steuerung unterschiedlicher interner Gruppen durch die Hauptwebsite. Beispiel: www.company.com/software bezieht verschiedene Server und Inhalte aus dem Bereich www.company.com/hardware ein. Da alle Anforderungen vom Root-Cluster www.company.com ausgehen, sind Inhaltsregeln erforderlich, um die URI-Unterscheidung für den Lastausgleich vorzunehmen. Die Regel für dieses Szenario würde wie folgt aussehen:
>>rule add cluster1@80@div1 type content pattern "uri=/software/*" priority 1
>>rule uses cluster1@80@div1 server1+server2
>>rule add cluster1@80@div2 type content pattern "uri=/hardware/*" priority 2
>>rule uses cluster1@80@div2 server3+server4
Szenario 3
Bei bestimmten Kombinationen ist die Reihenfolge wichtig, in der die Regeln durchsucht werden. Im Szenario 2 wurden die Clients beispielsweise ausgehend von einem Verzeichnis in ihrem Anforderungspfad aufgeteilt. Der Zielverzeichnispfad kann jedoch auf verschiedenen Ebenen dieses Pfades angezeigt werden und dort jeweils zu anderen Ergebnissen führen. So ist das Ziel www.company.com/pcs/fixes/software beispielsweise von www.company.com/mainframe/fixes/software verschieden. Die Regeln müssen dieser Möglichkeit Rechnung tragen und so konfiguriert werden, dass die nicht zu vielen Szenarien gleichzeitig gerecht werden. Die Platzhaltersuche uri=*/software/* wäre in diesem Falle zu breit angelegt. Alternative Regeln könnten wie folgt strukturiert sein:
  • Mit einer kombinierten Suche kann hier eine Eingrenzung vorgenommen werden:
    >>rule add cluster1@80@pcs type content pattern "(uri=/pcs/*)&(uri=*/software/*)"
    >>rule uses cluster 1@80@pcs server1
  • In Fällen, in denen keine Kombinationen anwendbar sind, ist die Reihenfolge wichtig:
    >>rule add cluster1@80@pc1 type content pattern "uri=/pcs/*"
    >>rule uses cluster1@80@pc1 server2
  • Die zweite Regel wird angewendet, wenn "pcs" im Verzeichnis nicht an erster Stelle, sondern an einer späteren Stelle erscheint.
    >>rule add cluster1@80@pc2 type content pattern "uri=/*/pcs/*"
    >>rule uses cluster1@80@pc2 server3
  • In fast allen Fällen sollten Sie die Regeln durch eine Standardregel ergänzen, die immer wahr (always true) ist und für alles gelten soll, was nicht unter die übrigen Regeln fällt. In Szenarien, in denen alle Server für einen bestimmten Client nicht in Frage kommen, könnte dies auch ein Server mit der Regel "Die Site ist derzeit nicht verfügbar, versuchen Sie es später erneut" sein.
    >>rule add cluster1@80@sorry type true priority 100
    >>rule uses cluster1@80@sorry server5
Reference topic    

Terms and conditions for information centers | Feedback

Last updated: May 30, 2013 07:18 AM EDT
File name: rprf_contentsyntax.html