Tipi di condizioni per le regole degli ascoltatori - Sistema di bilanciamento del carico elastico

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tipi di condizioni per le regole degli ascoltatori

Le condizioni definiscono i criteri che le richieste in entrata devono soddisfare affinché una regola del listener abbia effetto. Se una richiesta soddisfa le condizioni di una regola, la richiesta viene gestita come specificato dalle azioni della regola. Ogni condizione della regola ha informazioni su tipo e configurazione. Gli Application Load Balancer supportano i seguenti tipi di condizioni per le regole del listener.

Tipi di condizioni
host-header

Instradamento basato sul nome host di ogni richiesta. Per ulteriori informazioni, consulta Condizioni host.

http-header

Instradamento basato sulle intestazioni HTTP per ogni richiesta. Per ulteriori informazioni, consulta Condizioni nell'intestazione HTTP.

http-request-method

Instradamento basato sul metodo della richiesta HTTP di ogni richiesta. Per ulteriori informazioni, consulta Condizioni del metodo di richiesta HTTP.

path-pattern

Percorso basato sui modelli di percorso indicati nella richiesta URLs. Per ulteriori informazioni, consulta Condizioni percorso.

query-string

Percorso basato su key/value coppie o valori nelle stringhe di query. Per ulteriori informazioni, consulta Condizioni delle stringhe di query.

source-ip

Instradamento basato sull’indirizzo IP di origine di ogni richiesta. Per ulteriori informazioni, consulta Condizioni indirizzo IP di origine.

Nozioni di base sulle condizioni
  • Ogni regola può facoltativamente includere al massimo una delle seguenti condizioni: host-header, http-request-method, path-pattern e source-ip. Ogni regola può anche includere facoltativamente una o più delle seguenti condizioni: http-header e query-string.

  • Puoi specificare fino a tre valutazioni di corrispondenze per condizione. Ad esempio, per ogni condizione http-header è possibile specificare fino a tre stringhe da paragonare al valore dell’intestazione HTTP nella richiesta. La condizione è soddisfatta se una delle stringhe corrisponde al valore dell’intestazione HTTP. Per fare in modo che tutte le stringhe siano una corrispondenza, crea una condizione per valutazione di corrispondenza.

  • Puoi specificare fino a cinque valutazioni di corrispondenze per regola. Ad esempio, puoi creare una regola con cinque condizioni in cui ogni condizione ha una valutazione di corrispondenza.

  • Nelel valutazioni di corripondenza è possibile includere caratteri jolly per le condizioni http-header,host-header, path-pattern e query-string. Esiste un limite di cinque caratteri jolly per regola.

  • Le regole vengono applicate solo ai caratteri ASCII visibili; i caratteri di controllo (da 0x00 a 0x1f e 0x7f) sono esclusi.

Demo

Per le demo, consulta Instradamento avanzato delle richieste.

Condizioni nell'intestazione HTTP

Puoi usare le condizioni dell’intestazione HTTP per configurare le regole che instradano le richieste in base alle intestazioni HTTP per la richiesta. Puoi specificare i nomi dei campi delle intestazioni HTTP standard o personalizzate. Il nome dell'intestazione e la valutazione della corrispondenza non fanno distinzione tra lettere maiuscole e minuscole. I seguenti caratteri jolly sono supportati nelle stringhe di confronto: * (corrisponde a 0 o a più caratteri) e ? (corrisponde esattamente a 1 carattere). I caratteri jolly non sono supportati nel nome dell’intestazione.

Quando l'attributo Application Load Balancer routing.http.drop_invalid_header_fields è abilitato, eliminerà i nomi delle intestazioni che non sono conformi alle espressioni regolari (). A-Z,a-z,0-9 È inoltre possibile aggiungere nomi di intestazione non conformi alle espressioni regolari.

Esempio di condizione di intestazione HTTP per AWS CLI

Puoi specificare le condizioni quando crei o modifichi una regola. Per ulteriori informazioni consulta i comandi create-rule e modify-rule. La seguente condizione è soddisfatta dalle richieste con un’intestazione Utente-Agente che corrisponde a una delle stringhe specificate.

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

Condizioni del metodo di richiesta HTTP

Puoi usare le condizioni del metodo di richiesta HTTP per configurare le regole che instradano le richieste in base al metodo di richiesta HTTP della richiesta. Puoi specificare metodi HTTP standard o personalizzati. La valutazione della corrispondenza prevede la distinzione tra lettere maiuscole e minuscole. I caratteri jolly non sono supportati; pertanto, il nome del metodo deve essere una corrispondenza esatta.

Consigliamo di instradare le richieste GET e HEAD nello stesso modo, perché la risposta alla richiesta HEAD può essere inserita nella cache.

Esempio di condizione del metodo HTTP per AWS CLI

Puoi specificare le condizioni quando crei o modifichi una regola. Per ulteriori informazioni consulta i comandi create-rule e modify-rule. La condizione seguente è soddisfatta dalle richieste che utilizzano il metodo specificato.

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

Condizioni host

È possibile utilizzare le condizioni host per definire regole in grado di inoltrare le richieste in base al nome host nell'intestazione host (noto anche come instradamento basato su host). In questo modo è possibile supportare più sottodomini e domini di primo livello diversi utilizzando un singolo sistema di bilanciamento del carico.

Un nome host non distingue tra maiuscole e minuscole, può avere una lunghezza massima di 128 caratteri e contenere qualsiasi carattere tra i seguenti:

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

  • - .

  • * (corrisponde a 0 o più caratteri)

  • ? (corrisponde esattamente a 1 carattere)

Si deve includere il carattere "." almeno una volta. Dopo l'ultimo carattere "." è possibile includere solo caratteri alfabetici.

Esempio di nomi host
  • example.com

  • test.example.com

  • *.example.com

La regola *.example.com si applica a test.example.com ma non a example.com.

Esempio di condizione di intestazione dell'host per AWS CLI

Puoi specificare le condizioni quando crei o modifichi una regola. Per ulteriori informazioni consulta i comandi create-rule e modify-rule. La seguente condizione è soddisfatta dalle richieste con un’intestazione host che corrisponde alla stringa specificata.

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

Condizioni percorso

È possibile utilizzare le condizioni percorso per definire regole in grado di inoltrare le richieste in base all'URL nella richiesta (noto anche come instradamento basato su host).

Il modello di percorso viene applicato solo al percorso dell'URL, non ai suoi parametri di query. Viene applicato solo ai caratteri ASCII visibili; i caratteri di controllo (da 0x00 a 0x1f e 0x7f) sono esclusi.

La valutazione della regola viene eseguita solo dopo la normalizzazione dell'URI.

Un modello di percorso non distingue tra maiuscole e minuscole, può avere una lunghezza massima di 128 caratteri e contenere qualsiasi carattere tra i seguenti.

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

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

  • & (utilizzo di &)

  • * (corrisponde a 0 o più caratteri)

  • ? (corrisponde esattamente a 1 carattere)

Se la versione del protocollo è gRPC, le condizioni possono essere specifiche per un pacchetto, un servizio o un metodo.

Esempio di modelli di percorso HTTP
  • /img/*

  • /img/*/pics

Esempio di modelli di percorso gRPC
  • /package

  • /package.service

  • /package.service/method

Il modello di percorso viene utilizzato per instradare le richieste, ma non le modifica. Ad esempio, se una regola ha un modello di percorso /img/*, la regola inoltra una richiesta per /img/picture.jpg al gruppo target specificato come una richiesta per /img/picture.jpg.

Esempio di condizione del modello di percorso per AWS CLI

Puoi specificare le condizioni quando crei o modifichi una regola. Per ulteriori informazioni consulta i comandi create-rule e modify-rule. La seguente condizione è soddisfatta dalle richieste con un URL che contiene la stringa specificata.

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

Condizioni delle stringhe di query

È possibile utilizzare le condizioni della stringa di query per configurare le regole che instradano le richieste in base a key/value coppie o valori nella stringa di query. La valutazione della corrispondenza non prevede la distinzione tra lettere maiuscole e minuscole. I seguenti caratteri jolly sono supportati: * (corrisponde a 0 o a più caratteri) e ? (corrisponde esattamente a 1 carattere).

Esempio di condizione della stringa di query per AWS CLI

Puoi specificare le condizioni quando crei o modifichi una regola. Per ulteriori informazioni consulta i comandi create-rule e modify-rule. La seguente condizione è soddisfatta dalle richieste con una stringa di query che include una key/value coppia di «version=v1" o qualsiasi chiave impostata su «example».

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

Condizioni indirizzo IP di origine

Puoi usare le condizioni dell’indirizzo IP di origine per configurare le regole che instradano le richieste in base all’indirizzo IP di origine della richiesta. L’indirizzo IP deve essere in formato CIDR. È possibile utilizzare entrambi gli indirizzi. IPv4 IPv6 I caratteri jolly non sono supportati. Non è possibile specificare il CIDR 255.255.255.255/32 come condizione della regola dell'IP di origine.

Se un client è al di là di un proxy, si tratta dell'indirizzo IP del proxy, non dell'indirizzo IP del client.

Questa condizione non è soddisfatta dagli indirizzi nell' X-Forwarded-Forintestazione. Per cercare gli indirizzi nell' X-Forwarded-Forintestazione, utilizza una http-header condizione.

Esempio di condizione IP di origine per AWS CLI

Puoi specificare le condizioni quando crei o modifichi una regola. Per ulteriori informazioni consulta i comandi create-rule e modify-rule. La seguente condizione è soddisfatta dalle richieste con un indirizzo IP di origine in uno dei blocchi CIDR specificati.

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