Questo esempio mostra come riscrivere il percorso specificato in una richiesta per un bilanciatore del carico delle applicazioni classico.
Per configurare la gestione del traffico per i bilanciatori del carico delle applicazioni esterni globali e i bilanciatori del carico delle applicazioni esterni regionali, consulta le seguenti pagine:
- Configurazione della gestione del traffico per il bilanciatore del carico delle applicazioni esterno globale
- Configurazione della gestione del traffico per il bilanciatore del carico delle applicazioni esterno regionale
Prima di iniziare
Scopri di più sulle riscritture URL.
Scopri di più sulle mappe URL in generale e sui matcher percorso in particolare.
L'esempio di riscrittura URL presuppone che tu abbia già creato il tuo bilanciatore del carico delle applicazioni esterno seguendo i passaggi descritti in Configurare un bilanciatore del carico con i bucket Cloud Storage.
Questo esempio ti guida nella creazione di due risorse:
http://IP_ADDRESS/never-fetch/three-cats.jpghttp://IP_ADDRESS/love-to-fetch/two-dogs.jpg
Dove
/never-fetch/three-cats.jpgè archiviato in/cats, che è il servizio predefinito, e/love-to-fetch/two-dogs.jpgè archiviato in/dogs.A questo punto, la mappa URL ha il seguente aspetto:
gcloud compute url-maps describe http-lb
creationTimestamp: '2020-10-13T11:18:10.561-07:00' defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats fingerprint: MKfYsObzqgw= hostRules: - hosts: - '*' pathMatcher: path-matcher-1 id: '1420501688756228493' kind: compute#urlMap name: test-bucket pathMatchers: - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats name: path-matcher-1 pathRules: - paths: - /love-to-fetch/* service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogs selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/http-lb
Modificare la mappa URL
In questo esempio, riscrivi l'URL /love-to-fetch/ in modo che gli utenti possano raggiungere l'immagine two-dogs.jpg con questo URL semplificato:
http://IP_ADDRESS/two-dogs.jpg
Per farlo, modifica la mappa URL del bilanciatore del carico come segue:
Console
Modificare il bilanciatore del carico
- Nella Google Cloud console, vai alla pagina Bilanciamento del carico.
Vai alla pagina Bilanciamento del carico - Fai clic su
http-lb. - Fai clic su Modifica .
- Lascia aperta la finestra per continuare.
Modificare le regole host e percorso
- Nella colonna a sinistra dello schermo, fai clic su Regole host e percorso.
- Seleziona Regola host e percorso avanzata (reindirizzamento URL, riscrittura URL).
- Fai clic sulla riga che contiene la regola percorso non predefinita, in questo caso la riga con un asterisco (
*) per tutti gli host. - Fai clic sull'icona a forma di matita per la riga
/love-to-fetch/* Route traffic to a single backend: dogs. - In Percorsi, elimina
/love-to-fetch/*e aggiungi/*. - In Azione, seleziona Instrada il traffico a un singolo backend.
- Fai clic su Azione aggiuntiva (riscrittura URL).
- Lascia vuoto il campo Riscrivi host.
- In Riscrittura prefisso percorso, inserisci
/love-to-fetch/. - In Backend, seleziona
dogs. - Fai clic su Salva.
Fai clic su Fine. La nuova regola host e percorso ha il seguente aspetto:
Percorsi Azione Backend Qualsiasi senza corrispondenza (valore predefinito) Instrada il traffico a un singolo backend cats /* Instrada il traffico a un singolo backend dogs Se è tutto corretto, fai clic su Aggiorna per aggiornare il bilanciatore del carico HTTP.
gcloud
Crea un file YAML
/tmp/http-lb.yaml, assicurandoti di sostituire PROJECT_ID con il tuo ID progetto.Quando un utente richiede il percorso
/*, il percorso viene riscritto nel backend nella posizione effettiva dei contenuti, ovvero/love-to-fetch/*.defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats hostRules: - hosts: - '*' pathMatcher: path-matcher-1 name: http-lb pathMatchers: - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats name: path-matcher-1 pathRules: - paths: - /* routeAction: urlRewrite: pathPrefixRewrite: /love-to-fetch/ service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogs tests: - description: Test routing to backend bucket, dogs host: example.com path: /love-to-fetch/test service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogsConvalida la mappa URL.
gcloud compute url-maps validate --source /tmp/http-lb.yaml
Se i test vengono superati e il comando restituisce un messaggio di operazione riuscita, salva le modifiche alla mappa URL.
Aggiorna la mappa URL.
gcloud compute url-maps import http-lb \ --source /tmp/http-lb.yaml \ --global
Test
Prendi nota dell'indirizzo IPv4 prenotato:
gcloud compute addresses describe example-ip \
--format="get(address)" \
--global
Dopo aver atteso diversi minuti che le modifiche si propaghino, puoi testare questa configurazione.
Nella riga di comando, esegui il seguente comando curl:
curl http://IP_ADDRESS/two-dogs.jpg
In un browser, apri http://IP_ADDRESS/two-dogs.jpg.