La riscrittura delle richiesta HTTP viene applicata alle richieste HTTP provenienti dal client.
Prerequisiti
Verificare che sia disponibile un server virtuale HTTP di livello 7. Vedere Aggiunta di server virtuali HTTP di livello 7.
Le regole di bilanciamento del carico supportano REGEX per i tipi di corrispondenza. I modelli REGEX con stile PCRE sono supportati con alcune limitazioni nei casi d'uso avanzati. Quando REGEX viene utilizzato nelle condizioni di corrispondenza, sono supportati i gruppi di acquisizione denominati. Vedere Espressioni regolari nelle regole di bilanciamento del carico.
Procedura
- Aprire il server virtuale HTTP di livello 7.
- Nella sezione Regole di bilanciamento del carico, accanto a Fase di riscrittura della richiesta, fare clic su per configurare le regole del bilanciamento del carico per la fase di riscrittura della richiesta HTTP.
- Nell'elenco a discesa selezionare una condizione di corrispondenza. Le condizioni di corrispondenza vengono utilizzate per associare il traffico dell'applicazione che passa attraverso i bilanciamenti del carico. In una regola di bilanciamento del carico è possibile specificare più condizioni di corrispondenza. Ogni condizione di corrispondenza definisce un criterio per il traffico dell'applicazione.
Condizione di corrispondenza supportata Descrizione Metodo richiesta HTTP Consente di verificare la corrispondenza con un metodo di richiesta HTTP. http_request.method: valore con cui verificare la corrispondenza
URI richiesta HTTP Consente di verificare la corrispondenza con l'URI di una richiesta HTTP senza argomenti della query. http_request.uri: valore con cui verificare la corrispondenza
Argomenti URI richiesta HTTP Utilizzata per la corrispondenza degli argomenti URI, ovvero la stringa di query dei messaggi di richiesta HTTP, ad esempio nell'URI http://example.com?foo=1&bar=2 "foo=1&bar=2" è la stringa di query contenente gli argomenti URI. In uno schema URI, la stringa della query è indicata dal primo punto interrogativo ("?") e termina con un simbolo di numero ("#") o con la fine dell'URI.
http_request.uri_arguments: valore con cui verificare la corrispondenza
Versione richiesta HTTP Utilizzata per la corrispondenza della versione del protocollo HTTP dei messaggi di richiesta HTTP http_request.version: valore con cui verificare la corrispondenza
Intestazione richiesta HTTP Utilizzata per la corrispondenza dei messaggi di richiesta HTTP in base ai campi dell'intestazione HTTP. I campi dell'intestazione HTTP sono componenti della sezione dell'intestazione dei messaggi di richiesta e risposta HTTP. Definiscono i parametri operativi di una transazione HTTP. http_request.header_name: nome dell'intestazione con cui verificare la corrispondenza
http_request.header_value: valore con cui verificare la corrispondenza
Cookie richiesta HTTP Utilizzata per la corrispondenza dei messaggi di richiesta HTTP in base al cookie, ovvero un tipo specifico di intestazione HTTP. Match_type e case_sensitive definiscono come confrontare il valore del cookie. http_request.cookie_value: valore con cui verificare la corrispondenza
Corpo della richiesta HTTP Consente di verificare la corrispondenza con il contenuto del corpo di una richiesta HTTP. http_request.body_value: valore con cui verificare la corrispondenza
Client SSL Consente di verificare la corrispondenza con l'ID profilo SSL del client. ssl_profile_id: valore con cui verificare la corrispondenza
Porta intestazione TCP Consente di verificare la corrispondenza con una porta di origine o di destinazione TCP. tcp_header.source_port: porta di origine con cui verificare la corrispondenza
tcp_header.destination_port: porta di destinazione con cui verificare la corrispondenzaOrigine intestazione IP Consente di verificare la corrispondenza con i campi dell'intestazione IP nei messaggi HTTP. Il tipo di origine può essere un singolo indirizzo IP, un intervallo di indirizzi IP o un gruppo. Vedere Aggiunta di un gruppo. - Se è selezionata l'opzione Origine intestazione IP con il tipo di origine Indirizzo IP, l'indirizzo IP di origine dei messaggi HTTP deve corrispondere agli indirizzi IP configurati nei gruppi. Sono supportati entrambi gli indirizzi IPv4 e IPv6
- Se è selezionata l'opzione Origine intestazione IP con il tipo di origine Gruppo, selezionare il gruppo nell'elenco a discesa.
ip_header.source_address: indirizzo di origine con cui verificare la corrispondenza
ip_header.destination_address: indirizzo di destinazione con cui verificare la corrispondenzaVariabile Creare una variabile e assegnare un valore alla variabile. Distinzione maiuscole/minuscole Impostare un contrassegno con distinzione tra maiuscole e minuscole per il confronto dei valori delle intestazioni HTTP. Se è true, viene applicata la distinzione tra maiuscole e minuscole quando si confronta il valore del corpo HTTP. - Dal menu a discesa selezionare un valore per Tipo di corrispondenza: Inizia con, Termina con, Uguale a, Contiene o Corrisponde a Regex. Il tipo di corrispondenza viene utilizzato per confrontare una condizione con un'azione specificata.
Tipo di corrispondenza Descrizione Inizia con Se la condizione di corrispondenza inizia con il valore specificato, la condizione viene soddisfatta. Termina con Se la condizione di corrispondenza termina con il valore specificato, la condizione viene soddisfatta. Uguale a Se la condizione di corrispondenza è uguale al valore specificato, la condizione viene soddisfatta. Contiene Se la condizione di corrispondenza contiene il valore specificato, la condizione viene soddisfatta. Corrisponde a Regex Se la condizione di corrispondenza corrisponde ai valori specificati, la condizione viene soddisfatta. - Specificare l'URI.
- Dal menu a discesa selezionare una Strategia di corrispondenza:
Strategia di corrispondenza Descrizione Qualsiasi Indica che l'host o il percorso può corrispondere affinché questa regola venga considerata una corrispondenza. Tutti Indica che affinché questa regola venga considerata una corrispondenza, sia l'host sia il percorso devono corrispondere.
- Selezionare un'azione dal menu a discesa:
Azioni Descrizione Riscrittura URI richiesta HTTP Questa azione viene utilizzata per riscrivere gli URI nei messaggi di richiesta HTTP corrispondenti. Specificare in questa condizione l'URI e gli argomenti dell'URI per sostituire l'URI e gli argomenti dell'URI del messaggio di richiesta HTTP corrispondente con i nuovi valori. Lo schema dell'URI completo dei messaggi HTTP ha la sintassi seguente. Schema: [//[user[:password]@]host[:port]][/path][?query][#fragment Il campo URI di questa azione viene utilizzato per riscrivere la parte /path nello schema precedente. Il campo Argomenti URI viene utilizzato per riscrivere la parte della query. Le variabili acquisite e le variabili integrate possono essere utilizzate nei campi URI e Argomenti URI.
- Immettere l'URI della richiesta HTTP
- Immettere la stringa di query dell'URI, che in genere contiene coppie chiave-valore, ad esempio foo1=bar1&foo2=bar2.
Riscrittura intestazione richiesta HTTP Questa azione viene utilizzata per riscrivere i campi dell'intestazione dei messaggi di richiesta HTTP corrispondenti con i nuovi valori specificati.
- Immettere il nome del messaggio di richiesta HTTP della casella di testo dell'intestazione.
- Immettere il valore dell'intestazione.
Eliminazione intestazione richiesta HTTP Questa azione viene utilizzata per eliminare i campi dell'intestazione dei messaggi di richiesta HTTP nella fase HTTP_REQUEST_REWRITE. È possibile eliminare tutte le intestazioni con lo stesso nome di intestazione mediante una sola azione. Per eliminare intestazioni con nomi di intestazione diversi, è necessario definire più azioni.
- Immettere il nome di un campo di intestazione del messaggio di richiesta HTTP.
Assegnazione variabile Creare una variabile e assegnarle un nome e un valore. - Attivare o disattivare il pulsante Distinzione maiuscole/minuscole per impostare un contrassegno con distinzione tra maiuscole e minuscole per il confronto dei valori dell'intestazione HTTP.
- Attivare o disattivare il pulsante Nega per abilitarlo.
- Fare clic su Salva e su Applica.