Bedingungstypen für Listener-Regeln - Elastic Load Balancing

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bedingungstypen für Listener-Regeln

Bedingungen definieren die Kriterien, die eingehende Anfragen erfüllen müssen, damit eine Listener-Regel wirksam wird. Wenn eine Anforderung den Bedingungen für eine Regel entspricht, wird die Anfrage gemäß den Aktionen der Regel behandelt. Jede Regelbedingung weist einen Typ und Bedingungsinformationen auf. Application Load Balancers unterstützen die folgenden Bedingungstypen für Listener-Regeln.

Bedingungstypen
host-header

Die Route basiert auf dem Hostnamen jeder Anforderung. Weitere Informationen finden Sie unter Hostbedingungen.

http-header

Die Route basiert auf den HTTP-Headern für jede Anforderung. Weitere Informationen finden Sie unter HTTP-Header-Bedingungen.

http-request-method

Die Route basiert auf der HTTP-Anforderungsmethode jeder Anforderung. Weitere Informationen finden Sie unter Bedingungen für HTTP-Anforderungsmethoden.

path-pattern

Route basierend auf Pfadmustern in der Anfrage URLs. Weitere Informationen finden Sie unter Pfadbedingungen.

query-string

Route basierend auf key/value Paaren oder Werten in den Abfragezeichenfolgen. Weitere Informationen finden Sie unter Abfragezeichenfolgebedingungen.

source-ip

Die Route basiert auf der Quell-IP-Adresse jeder Anforderung. Weitere Informationen finden Sie unter Bedingungen für die Quell-IP-Adresse.

Grundlagen des Zustands
  • Jede Regel kann optional jeweils eine der folgenden Bedingungen umfassen: host-header, http-request-method, path-pattern, und source-ip. Jede Regel kann optional auch eine oder mehrere der folgenden Bedingungen enthalten: http-header und query-string.

  • Sie können bis zu drei Übereinstimmungsbewertungen pro Bedingung angeben. Beispiel: Für jede http-header-Bedingung können Sie bis zu drei Zeichenfolgen angeben, die mit dem Wert des HTTP-Headers in der Anforderung vergleichen werden. Die Bedingung wird erfüllt, wenn eine der Zeichenfolgen dem Wert des HTTP-Headers entspricht. Wenn alle drei Zeichenfolgen eine Übereinstimmung aufweisen sollen, erstellen Sie eine Bedingung pro Übereinstimmungsbewertung.

  • Sie können bis zu fünf Übereinstimmungsbewertungen pro Regel angeben. Beispiel: Sie können eine Regel mit fünf Bedingungen erstellen, wobei jede Bedingung eine Übereinstimmungsbewertung aufweist.

  • Sie können Platzhalterzeichen in die Übereinstimmungsbewertung für die Bedingungen http-header, host-header, path-pattern und query-string einschließen. Die Anzahl der Platzhalterzeichen pro Bedingung ist auf 5 beschränkt.

  • Regeln werden nur auf sichtbare ASCII-Zeichen angewendet; Steuerzeichen (0x00 bis 0x1f und 0x7f) sind ausgeschlossen.

Demos

Demos finden Sie unter Erweiterte Anfrageweiterleitung.

Hostbedingungen

Mit Hostbedingungen können Sie Regeln definieren, die Anforderungen basierend auf dem Hostnamen im Host-Header weiterleiten (auch als hostbasierte Weiterleitung bezeichnet). Auf diese Weise können Sie mit einem einzigen Load Balancer mehrere Unterdomains und verschiedene Top-Level-Domains unterstützen.

Beim Hostnamen wird die Groß-/Kleinschreibung nicht berücksichtigt, er kann maximal 128 Zeichen lang sein und kann folgende Zeichen enthalten:

  • A-Z, a-z, 0-9

  • - .

  • * (entspricht 0 oder mehr Zeichen)

  • ? (entspricht genau 1 Zeichen)

Sie müssen mindestens ein "."-Zeichen einschließen. Es können nur alphabethische Zeichen nach dem letzten "."-Zeichen angegeben werden.

Beispiele für Hostnamen
  • example.com

  • test.example.com

  • *.example.com

Die Regel *.example.com entspricht test.example.com, nicht jedoch example.com.

Beispiel für eine Host-Header-Bedingung für AWS CLI

Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen create-rule und modify-rule. Die folgende Bedingung wird von Anforderungen mit einem Host-Header erfüllt, der mindestens einer der angegeben Zeichenfolgen entspricht.

[ { "Field": "host-header", "HostHeaderConfig": { "Values": ["*.example.com"] } } ]

HTTP-Header-Bedingungen

Mit HTTP-Header-Bedingungen können Sie Regeln konfigurieren, mit denen Anforderungen auf Grundlage der HTTP-Header für die Anforderung weitergeleitet werden. Sie können die Namen der standardmäßigen oder benutzerdefinierten HTTP-Header-Felder angeben. Beim Headernamen und bei der Übereinstimmungsbewertung wird nicht zwischen die Groß- und Kleinschreibung unterschieden. Die folgenden Platzhalterzeichen werden in den Vergleichszeichenfolgen unterstützt: * (findet eine Übereinstimmung mit 0 oder mehr Zeichen) und ? (findet Übereinstimmungen für genau 1 Zeichen). Platzhalterzeichen werden im Header-Namen nicht unterstützt.

Wenn das Application Load Balancer Balancer-Attribut aktiviert routing.http.drop_invalid_header_fields ist, werden Header-Namen gelöscht, die nicht den regulären Ausdrücken () A-Z,a-z,0-9 entsprechen. Header-Namen, die nicht den regulären Ausdrücken entsprechen, können ebenfalls hinzugefügt werden.

Beispiel für eine HTTP-Header-Bedingung für AWS CLI

Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen create-rule und modify-rule. Die folgende Bedingung wird von Anforderungen mit einem User-Agent-Header erfüllt, der mindestens einer der angegeben Zeichenfolgen entspricht.

[ { "Field": "http-header", "HttpHeaderConfig": { "HttpHeaderName": "User-Agent", "Values": ["*Chrome*", "*Safari*"] } } ]

Bedingungen für HTTP-Anforderungsmethoden

Mit Bedingungen für HTTP-Anforderungsmethoden können Sie Regeln konfigurieren, mit denen Anforderungen auf Grundlage der HTTP-Anforderungsmethode der Anforderung weitergeleitet werden. Sie können standardmäßige oder benutzerdefinierte HTTP-Methoden angeben. Bei der Übereinstimmungsbewertung wird die Groß- und Kleinschreibung nicht beachtet, Platzhalterzeichen werden nicht unterstützt. Der Methodenname muss also eine genaue Übereinstimmung sein.

Wir empfehlen, dass Sie GET- und HEAD-Anforderungen auf die gleiche Weise weiterleiten, da die Antwort auf eine HEAD-Anforderung möglicherweise zwischengespeichert wird.

Beispiel für eine HTTP-Methodenbedingung für AWS CLI

Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen create-rule und modify-rule. Die folgende Bedingung wird von Anforderungen erfüllt, bei der die angegebene Methode verwendet wird.

[ { "Field": "http-request-method", "HttpRequestMethodConfig": { "Values": ["CUSTOM-METHOD"] } } ]

Pfadbedingungen

Mit Pfadbedingungen können Sie Regeln definieren, mit denen Anforderungen auf Grundlage der URL in der Anforderung weitergeleitet werden (auch bekannt als pfadbasierte Weiterleitung

Das Pfadmuster wird nur auf den Pfad der URL, nicht auf dessen Abfrageparameter, angewendet. Es wird nur auf sichtbare ASCII-Zeichen angewendet; Steuerzeichen (0x00 bis 0x1f und 0x7f) sind ausgeschlossen.

Die Regelauswertung wird erst durchgeführt, nachdem die URI-Normalisierung erfolgt ist.

Beim Pfadmuster wird die Groß-/Kleinschreibung berücksichtigt, es kann maximal 128 Zeichen lang sein und kann folgende Zeichen enthalten.

  • A-Z, a-z, 0-9

  • _ - . $ / ~ " ' @ : +

  • & (Verwendung von &)

  • * (entspricht 0 oder mehr Zeichen)

  • ? (entspricht genau 1 Zeichen)

Wenn die Protokollversion gRPC ist, können Bedingungen für ein Paket, einen Dienst oder eine Methode spezifisch sein.

Beispiel für HTTP-Pfadmuster
  • /img/*

  • /img/*/pics

Beispiel für gRPC-Pfadmuster
  • /paket

  • /paket.dienst

  • /paket.dienst/methode

Das Pfadmuster wird verwendet, um Anforderungen weiterzuleiten. Die Anforderungen werden bei diesem Vorgang aber nicht geändert. Wenn eine Regel beispielsweise das Pfadmuster /img/* aufweist, leitet die Regel eine Anforderung von /img/picture.jpg an die angegebene Zielgruppe als Anforderung von /img/picture.jpg weiter.

Beispiel für eine Pfadmusterbedingung für AWS CLI

Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen create-rule und modify-rule. Die folgende Bedingung wird von Anforderungen mit einer URL erfüllt, die die angegebene Zeichenfolge enthält.

[ { "Field": "path-pattern", "PathPatternConfig": { "Values": ["/img/*"] } } ]

Abfragezeichenfolgebedingungen

Sie können Bedingungen für Abfragezeichenfolgen verwenden, um Regeln zu konfigurieren, die Anfragen auf der Grundlage von key/value Paaren oder Werten in der Abfragezeichenfolge weiterleiten. Bei der Übereinstimmungsbewertung wird die Groß- und Kleinschreibung nicht beachtet, Die folgenden Platzhalterzeichen werden unterstützt: * (findet Übereinstimmungen mit 0 oder mehr Zeichen) und ? (findet Übereinstimmungen für genau 1 Zeichen).

Beispiel für eine Abfragezeichenfolge für die AWS CLI

Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen create-rule und modify-rule. Die folgende Bedingung wird durch Anfragen mit einer Abfragezeichenfolge erfüllt, die entweder ein key/value Paar „version=v1" oder einen beliebigen Schlüssel enthält, der auf „Beispiel“ gesetzt ist.

[ { "Field": "query-string", "QueryStringConfig": { "Values": [ { "Key": "version", "Value": "v1" }, { "Value": "*example*" } ] } } ]

Bedingungen für die Quell-IP-Adresse

Mit Bedingungen für die Quell-IP-Adresse können Sie Regeln konfigurieren, mit denen Anforderungen auf Grundlage der Quell-IP-Adresse der Anforderung weitergeleitet werden. Die IP-Adresse muss im CIDR-Format angegeben werden. Sie können sowohl als auch IPv4 Adressen verwenden. IPv6 Platzhalterzeichen werden nicht unterstützt. Sie können den 255.255.255.255/32-CIDR für die Quell-IP-Regelbedingung nicht angeben.

Befindet sich ein Client hinter einem Proxy, ist dies die IP-Adresse des Proxys, nicht die des Clients.

Diese Bedingung wird von den Adressen in der X-Forwarded-For Kopfzeile nicht erfüllt. Verwenden Sie eine http-header Bedingung, um in der X-Forwarded-For Kopfzeile nach Adressen zu suchen.

Beispiel für eine Quell-IP-Bedingung für AWS CLI

Sie können Bedingungen angeben, wenn Sie eine Regel erstellen oder ändern. Weitere Informationen finden Sie bei den Befehlen create-rule und modify-rule. Die Folgende Bedingung wird von Anforderungen mit einer Quell-IP-Adresse in einem der angegebenen CIDR-Blöcken erfüllt.

[ { "Field": "source-ip", "SourceIpConfig": { "Values": ["192.0.2.0/24", "198.51.100.10/32"] } } ]