Questa guida utilizza un esempio per descrivere le nozioni di base dell'utilizzo di un modello di (a volte denominato origine personalizzata) in un bilanciatore del carico delle applicazioni esterno. Un il backend esterno è un endpoint esterno a Google Cloud. Quando utilizzi un backend esterno con un bilanciatore del carico delle applicazioni esterno, puoi migliorare il rendimento utilizzando la memorizzazione nella cache di Cloud CDN.
La guida illustra i passaggi per configurare un bilanciatore del carico delle applicazioni esterno globale con un
Servizio di backend abilitato per Cloud CDN che esegue il proxy
server di backend esterno in backend.example.com
.
In questo esempio, il bilanciatore del carico accetta le richieste HTTPS dai client proxy queste richieste come HTTPS al backend esterno. Questo esempio presuppone che il backend esterno supporti HTTPS.
Altre opzioni sono la configurazione di un bilanciatore del carico per accettare HTTP o HTTPS e utilizzare HTTPS durante il proxy delle richieste al backend esterno.
Questa guida presuppone che tu abbia già configurato un bilanciatore del carico aggiungendo un nuovo backend esterno. Per ulteriori informazioni, vedi Configura un bilanciatore del carico delle applicazioni classico con un gruppo di istanze gestite di backend.
La figura 1 mostra un'architettura di esempio.
Nel diagramma, www.example.com
ha un frontend del bilanciatore del carico con l'indirizzo IP 120.1.1.1
. In caso di fallimento della cache, l'utente richiede
I file /cart/id/1223515
vengono recuperati dal backend esterno tramite HTTPS. Tutti
mentre l'altro traffico in entrata viene indirizzato al backend di Google Cloud
con le VM di Compute Engine o il bucket di backend, in base
Mappa URL.
Prima di iniziare
Prima di seguire questa guida, acquisisci familiarità con i seguenti argomenti:
Panoramica dei gruppi di endpoint di rete internet, il che include le limitazioni.
Autorizzazioni
Per seguire questa guida, devi creare un endpoint di rete internet gruppo (NEG) e creare o modificare un bilanciatore del carico delle applicazioni esterno in un progetto. Devi essere il proprietario o il proprietario di un progetto Editor oppure dovresti avere entrambe le i seguenti ruoli IAM di Compute Engine.
Attività | Ruolo richiesto |
---|---|
Creare e modificare i componenti del bilanciatore del carico | Amministratore rete |
Crea e modifica i NEG | Amministratore istanze Compute |
Configura un bilanciatore del carico con un backend esterno
Questa sezione mostra come configurare e testare un NEG internet.
Panoramica della configurazione
La configurazione di un NEG internet comporta quanto segue:
- Definizione dell'endpoint internet in un NEG internet.
- Aggiunta di un NEG internet come backend di un servizio di backend.
- Definisci il traffico utente da mappare a questo servizio di backend configurando la mappa URL del bilanciatore del carico delle applicazioni esterno.
- Inserire gli intervalli IP necessari nella lista consentita.
Questo esempio crea le seguenti risorse:
- Una regola di forwarding con l'indirizzo IP
120.1.1.1
indirizza le richieste in arrivo a un proxy di destinazione. - Il valore
networkTier
della regola di forwarding deve esserePREMIUM
. - Il proxy di destinazione controlla ogni richiesta a fronte della mappa URL per determinare il servizio di backend più appropriato per la richiesta.
- Per i backend esterni, il proxy di destinazione deve essere
TargetHttpProxy
oTargetHttpsProxy
. Questo nell'esempio utilizzaTargetHttpsProxy
. - Cloud CDN abilitato (facoltativo) sul servizio di backend consente nella cache e nella gestione delle risposte dalle cache di Cloud CDN.
- Questo esempio include un'intestazione personalizzata, che è obbligatoria quando il backend esterno si aspetta un valore specifico per l'intestazione
Host
della richiesta HTTP.
La configurazione è la seguente.
Crea il NEG e l'endpoint internet
Console
- Nella console Google Cloud, vai alla pagina Gruppi di endpoint di rete.
- Fai clic su Crea gruppo di endpoint di rete.
- Inserisci il nome del gruppo di endpoint di rete:
example-fqdn-neg
. - Per Tipo di gruppo di endpoint di rete, seleziona Gruppo di endpoint di rete (internet).
- In Porta predefinita, inserisci
443
. - In Nuovo endpoint di rete, seleziona Nome di dominio e porta completi.
- Per il nome di dominio completo, inserisci
backend.example.com
. - In Tipo di porta, seleziona Predefinito e verifica che Porta
numero è
443
. - Fai clic su Crea.
gcloud
Crea un NEG internet e imposta
--network-endpoint-type
suinternet-fqdn-port
(il nome host e la porta dove il backend esterno può essere raggiunto):gcloud compute network-endpoint-groups create example-fqdn-neg \ --network-endpoint-type="internet-fqdn-port" --global
Aggiungi il tuo endpoint al NEG. Se non viene specificata una porta, la porta la selezione predefinita è la porta
80
(HTTP) o443
(HTTPS; HTTP/2), a seconda sul protocollo configurato nel servizio di backend. Assicurati di includere il flag--global
:gcloud compute network-endpoint-groups update example-fqdn-neg \ --add-endpoint="fqdn=backend.example.com,port=443" \ --global
Elenca il NEG internet creato:
gcloud compute network-endpoint-groups list --global
Output:
NAME LOCATION ENDPOINT_TYPE SIZE example-fqdn-neg global INTERNET_FQDN_PORT 1
Elenca l'endpoint all'interno di quel NEG:
gcloud compute network-endpoint-groups list-network-endpoints example-fqdn-neg \ --global
Output:
INSTANCE IP_ADDRESS PORT FQDN backend.example.com
Aggiungi un backend esterno a un bilanciatore del carico
L'esempio seguente aggiorna un bilanciatore del carico esistente.
Nel bilanciatore del carico esistente, il servizio predefinito è Google Cloud
completamente gestito di Google Cloud. L'esempio modifica la mappa URL esistente aggiungendo un matcher di percorso che
invia tutte le richieste per cart/id/1223515
al servizio di backend images
, che
è associato al NEG internet.
Console
Crea il servizio di backend e aggiungi il NEG internet
- Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Per aggiungere il servizio di backend a un bilanciatore del carico esistente, selezionate il bilanciatore del carico delle applicazioni classico, fai clic su Menu e poi su Modifica.
- Fai clic su Configurazione backend.
- Nella sezione Servizi di backend e dei bucket di backend, seleziona Crea un servizio di backend.
- Imposta il nome del servizio di backend su
images
. - In Tipo di backend, seleziona Gruppo di endpoint di rete internet.
- Seleziona il protocollo che intendi utilizzare dal bilanciatore del carico al NEG internet. Per questo esempio, seleziona HTTPS.
- In Nuovo backend > Gruppo di endpoint di rete internet, seleziona
example-fqdn-neg
, quindi fai clic su Fine. - Seleziona Abilita Cloud CDN.
- (Facoltativo) Modifica la modalità cache e Impostazioni TTL.
- In Configurazioni avanzate, in Intestazioni delle richieste personalizzate,
Fai clic su Aggiungi intestazione.
- In Nome intestazione, inserisci
Host
. - In Valore intestazione, inserisci
backend.example.com
.
- In Nome intestazione, inserisci
- Fai clic su Crea.
- Tieni la finestra aperta per continuare.
Collega il servizio di backend a una mappa URL esistente
- Fai clic su Regole host e percorso.
- La prima riga o le prime righe contengono i servizi Google Cloud sulla destra
e una delle due è già compilata con la regola predefinita
Any unmatched (default)
per Host e Percorsi. - Assicurati che nella colonna di destra sia selezionata una riga con
images
. Se non esiste, fai clic su Aggiungi regola host e percorso e selezionaimages
. Compila gli altri campi come segue:- In Host, inserisci
*
. - In Percorsi, inserisci
/cart/id/1223515
.
- In Host, inserisci
Esamina e finalizza
- Fai clic su Esamina e finalizza.
- Confronta le tue impostazioni con ciò che intendevi creare.
- Se è tutto corretto, fai clic su Aggiorna.
gcloud
Crea un nuovo servizio di backend per il NEG:
gcloud compute backend-services create images \ --global \ --enable-cdn \ --cache-mode=CACHE_MODE \ --protocol=HTTP2
Imposta la modalità cache sostituendo CACHE_MODE con uno dei seguenti:
CACHE_ALL_STATIC
: memorizza automaticamente nella cache dati statici contenutiUSE_ORIGIN_HEADERS
(predefinito): richiede che l'origine sia impostata su valido di memorizzazione nella cache per memorizzare i contenuti nella cacheFORCE_CACHE_ALL
: memorizza nella cache tutti i contenuti, ignorando eventualiprivate
, Istruzionino-store
ono-cache
nella rispostaCache-Control
intestazioni
Configura il servizio di backend per aggiungere l'intestazione della richiesta personalizzata
Host: backend.example.com
alla richiesta:gcloud compute backend-services update images \ --custom-request-header "Host: backend.example.com" --global
Utilizza il comando
backend-services add-backend
per aggiungere il NEG internet al servizio di backend:gcloud compute backend-services add-backend images \ --network-endpoint-group "example-fqdn-neg" \ --global-network-endpoint-group \ --global
Collega il nuovo servizio di backend alla mappa URL del bilanciatore del carico creando una nuova regola di corrispondenza per indirizzare le richieste a quel backend:
gcloud compute url-maps add-path-matcher EXAMPLE_URL_MAP \ --default-service=GCP_SERVICE_EXAMPLE \ --path-matcher-name=CUSTOM_ORIGIN_PATH_MATCHER_EXAMPLE \ --backend-service-path-rules=/CART/ID/1223515=IMAGES
Sostituisci quanto segue:
EXAMPLE_URL_MAP
: il nome del tuo esistente Mappa URLGCP_SERVICE_EXAMPLE
: il nome di un elemento esistente servizio di backend predefinitoCUSTOM_ORIGIN_PATH_MATCHER_EXAMPLE
: il nome di questa nuova regola del percorso/CART/ID/1223515
: il percorsoIMAGES
: il nome del nuovo servizio di backend con il NEG internet collegato
Autorizza gli intervalli IP necessari
Per consentire a un bilanciatore del carico delle applicazioni esterno di inviare richieste al NEG internet, devi
esegui una query sul record TXT DNS _cloud-eoips.googleusercontent.com
usando uno strumento
come dig
o nslookup
.
Ad esempio, esegui questo comando dig
:
dig TXT _cloud-eoips.googleusercontent.com | grep -Eo 'ip4:[^ ]+' | cut -d':' -f2
L'output contiene due intervalli IP, come segue:
34.96.0.0/20
34.127.192.0/18
Prendi nota degli intervalli IP e assicurati che siano consentiti dal firewall o l'elenco di controllo dell'accesso (ACL, Cloud Access Control List).
Per ulteriori informazioni, consulta la sezione Autenticazione richieste.
Connetti il tuo dominio al bilanciatore del carico
Dopo aver creato il bilanciatore del carico, prendi nota dell'indirizzo IP associato
dal bilanciatore del carico, ad esempio 30.90.80.100
. Per indirizzare il tuo dominio al bilanciatore del carico, crea un record A
utilizzando il servizio di registrazione del dominio. Se
hai aggiunto più domini al tuo certificato SSL, devi aggiungere un record A
per ciascuno, che rimandi all'indirizzo IP del bilanciatore del carico. Ad esempio, per creare record A
per www.example.com
e example.com
, utilizza quanto segue:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
Se utilizzi Cloud DNS come provider DNS, consulta Aggiungere, modificare ed eliminare i record.
Testa il bilanciatore del carico delle applicazioni esterno
Ora che hai configurato il bilanciatore del carico, puoi iniziare a inviare traffico al suo indirizzo IP. Se hai configurato un dominio, puoi: inviare traffico anche al nome di dominio. Tuttavia, la propagazione DNS può richiedere tempo per completare la procedura, in modo da poter iniziare utilizzando l'indirizzo IP a scopo di test.
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul bilanciatore del carico che hai appena creato.
Prendi nota dell'indirizzo IP del bilanciatore del carico.
Se hai creato un bilanciatore del carico HTTP, puoi testarlo utilizzando un browser web all'indirizzo
http://IP_ADDRESS
. SostituisciIP_ADDRESS
con indirizzo IP del bilanciatore del carico. Dovresti visualizzare la home page del serviziohelloworld
.Se hai creato un bilanciatore del carico HTTPS, puoi testarlo utilizzando un browser web all'indirizzo
https://IP_ADDRESS
. SostituisciIP_ADDRESS
con indirizzo IP del bilanciatore del carico. Tu deve essere indirizzato alla home page del serviziohelloworld
.Se non funziona e utilizzi un certificato gestito da Google, verifica che lo stato della risorsa del certificato sia ATTIVO. Per ulteriori informazioni informazioni, consulta Risorsa del certificato SSL gestito da Google .
In alternativa, puoi utilizzare
curl
dalla riga di comando della tua macchina locale. SostituisciIP_ADDRESS
con il IPv4 del bilanciatore del carico di sicurezza.Se utilizzi un certificato gestito da Google, testa il dominio che rimanda a all'indirizzo IP del bilanciatore del carico. Ad esempio:
curl -s 'https://www.example.com:443' --resolve www.example.com:443:IP_ADDRESS
(Facoltativo) Se utilizzi un dominio personalizzato, potrebbe essere necessario attendere la propagazione delle impostazioni DNS aggiornate. Quindi, testa il tuo dominio (ad esempio
backend.example.com
) nel browser web.Per assistenza con la risoluzione dei problemi, vedi Risoluzione dei problemi relativi a backend esterno e internet Problemi relativi al NEG.
Disabilita Cloud CDN
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul nome del bilanciatore del carico da modificare.
Fai clic su
Modifica.Fai clic su Configurazione backend.
Per il servizio di backend con il backend del NEG internet, fai clic su
Modifica.Deseleziona la casella di controllo Abilita Cloud CDN.
Per esaminare le modifiche, fai clic su Esamina e finalizza e poi fai clic su Aggiorna.
gcloud
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --no-enable-cdn
La disabilitazione di Cloud CDN non annulla o elimina definitivamente le cache. Se disattivi e riattivi Cloud CDN, la maggior parte o tutti i contenuti memorizzati nella cache potrebbero essere ancora memorizzati nella cache. Per impedire che i contenuti vengano utilizzati da di cache, devi annullarne i contenuti.
Passaggi successivi
- Per verificare se Cloud CDN serve risposte dalla cache, consulta Log e metriche per la memorizzazione nella cache.
- Per scoprire quali contenuti possono essere memorizzati o meno nella cache, consulta: Panoramica della memorizzazione nella cache.
- Per trovare i punti di presenza GFE, consulta Posizioni della cache.