Questa guida si avvale di un esempio per insegnare le nozioni di base dell'utilizzo di un (a volte denominato origine personalizzata) con un bilanciatore del carico delle applicazioni esterno globale. Un il backend esterno è un endpoint esterno a Google Cloud. Quando utilizzi un backend esterno con un bilanciatore del carico delle applicazioni esterno globale, puoi migliorare le prestazioni utilizzando la memorizzazione nella cache di Cloud CDN.
La guida mostra come configurare un bilanciatore del carico delle applicazioni esterno globale con un Servizio di backend abilitato per Cloud CDN che esegue il proxy delle richieste a un con un server di backend esterno.
Prima di seguire questa guida, familiarizza con la documentazione relativa alla panoramica del NEG su internet, incluse le limitazioni.Il seguente diagramma dell'architettura mostra il frontend di un bilanciatore del carico delle applicazioni esterno globale con un backend esterno.
Autorizzazioni
Per seguire questa guida, devi creare un NEG internet e creare o modificare un
un bilanciatore del carico delle applicazioni esterno
in un progetto. Devi essere un proprietario o un proprietario
Editor (roles/owner
o roles/editor
) oppure
devi disporre di entrambi i seguenti bucket IAM di Compute Engine
ruoli.
Attività | Ruolo richiesto |
---|---|
Creare e modificare i componenti del bilanciatore del carico | Amministratore rete Compute ( roles/compute.networkAdmin )
|
Creare e modificare i NEG | Amministratore di istanze Compute ( roles/compute.instanceAdmin )
|
Configurare l'ambiente di backend esterno al di fuori di Google Cloud
Per configurare l'ambiente, consulta le sezioni seguenti.
Configura gli endpoint di rete
Configura un endpoint di rete per esporre il backend esterno a in Google Cloud. Assicurati che l'endpoint, una combinazione IP:Porta o un nome di dominio completo (FQDN) e una porta, è raggiungibile tramite internet. Successivamente, il NEG internet fa riferimento a questo endpoint.
Per i requisiti di configurazione dettagliati degli endpoint NEG internet, consulta la panoramica dei NEG internet.
Consenti al backend esterno di ricevere traffico da Google Cloud
Per consentire alle richieste provenienti da Google Cloud di raggiungere il tuo backend esterno, devi inserire nella lista consentita gli intervalli di indirizzi IP utilizzati da Google per inviare richieste ai backend esterni. Per cercare gli indirizzi IP che devono essere autorizzati a inviare
il traffico verso i tuoi backend esterni, esegui una query
_cloud-eoips.googleusercontent.com
record TXT DNS con uno strumento come
dig
o nslookup
.
Esempi:
Esegui questo comando
nslookup
:nslookup -q=TXT _cloud-eoips.googleusercontent.com 8.8.8.8
L'output è il seguente:
Non-authoritative answer: _cloud-eoips.googleusercontent.com text = "v=spf1 ip4:34.96.0.0/20 ip4:34.127.192.0/18 ~all"
Prendi nota degli intervalli CIDR successivi a
ip4:
e assicurati che siano consentiti dalle regole firewall o dagli elenchi di controllo dell'accesso (ACL) cloud configurati sul tuo backend esterno.Esegui questo comando
dig
:dig TXT _cloud-eoips.googleusercontent.com | grep -Eo 'ip4:[^ ]+' | cut -d':' -f2
L'output contiene due intervalli di indirizzi IP, come segue:
34.96.0.0/20 34.127.192.0/18
Configurare l'ambiente Google Cloud
Crea il bilanciatore del carico delle applicazioni esterno globale con un backend NEG internet.
Prenotare un indirizzo IP esterno
Prenota un indirizzo IP esterno statico globale che i client utilizzano per raggiungere il tuo un'applicazione.
Console
Nella console Google Cloud, vai alla pagina Indirizzi IP esterni.
Fai clic su Prenota indirizzo statico esterno per prenotare un indirizzo IPv4.
Inserisci un nome.
In Network Service Tier (Livello di servizio di rete), seleziona Premium.
Per Versione IP, seleziona IPv4.
In Tipo, seleziona Globale.
Fai clic su Prenota.
gcloud
gcloud compute addresses create LB_IP_ADDRESS_NAME \ --network-tier=PREMIUM \ --ip-version=IPV4 \ --global
Prendi nota dell'indirizzo IPv4 riservato:
gcloud compute addresses describe LB_IP_ADDRESS_NAME \ --format="get(address)" \ --global
Configura il NEG internet
Console
Nella console Google Cloud, vai alla pagina Gruppi di endpoint di rete.
Fai clic su Crea gruppo di endpoint di rete.
Inserisci un nome.
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.
Inserisci il nome di dominio completo.
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 su cui è possibile raggiungere il backend esterno):gcloud compute network-endpoint-groups create INTERNET_NEG_NAME \ --network-endpoint-type="internet-fqdn-port" \ --global
Aggiungi il tuo endpoint al NEG. Se non viene specificata una porta, la selezione della porta è impostata su
80
(HTTP) o443
(HTTPS; HTTP/2) in base al protocollo configurato nel servizio di backend. Assicurati di includere il flag--global
:gcloud compute network-endpoint-groups update INTERNET_NEG_NAME \ --add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME,port=443" \ --global
crea il bilanciatore del carico
Console
Avvia la configurazione
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic su Crea bilanciatore del carico.
- Per Tipo di bilanciatore del carico, seleziona Bilanciatore del carico delle applicazioni (HTTP/HTTPS) e fai clic su Avanti.
- Per Pubblico o interno, seleziona Rivolto al pubblico (esterno) e fai clic su Avanti.
- Per Deployment globale o in una regione singola, seleziona Ideale per carichi di lavoro e fai clic su Avanti.
- Per Generazione del bilanciatore del carico, seleziona Classica Bilanciatore del carico delle applicazioni e fai clic su Avanti.
- Fai clic su Configura.
Configurazione frontend
- Fai clic su Configurazione frontend.
- Inserisci un nome.
Per creare un bilanciatore del carico HTTPS, devi disporre di un certificato SSL. Ti consigliamo di utilizzare un certificato gestito da Google.
Verifica che le seguenti opzioni siano configurate con questi valori.
Proprietà Valore (digita un valore o seleziona un'opzione come specificato) Protocollo HTTPS Livello di servizio di rete Premium Versione IP IPv4 Indirizzo IP Seleziona l'indirizzo IP creato nel passaggio Prenotare un indirizzo IP esterno. Porta 443 Certificato Seleziona un certificato SSL esistente o creane uno nuovo.
Per creare un bilanciatore del carico HTTPS, devi disporre di una risorsa certificato SSL da utilizzare nel proxy HTTPS. Puoi creare una risorsa del certificato SSL utilizzando un certificato SSL gestito da Google o un certificato SSL autogestito.
Per creare un certificato gestito da Google, devi avere un dominio. La che il record A del dominio deve risolversi nell'indirizzo IP del (in questo esempio,
example-ip
). Ti consigliamo di utilizzare i certificati gestiti da Google perché Google Cloud ottiene, gestisce e rinnova automaticamente questi certificati. Se non hai un dominio, puoi utilizzare un certificato SSL autofirmato per i test.(Facoltativo) Attiva il reindirizzamento da HTTP a HTTPS Utilizza questa casella di controllo per attivare i reindirizzamenti da HTTP a HTTPS.
Se attivi questa casella di controllo, viene creato un bilanciatore del carico HTTP parziale aggiuntivo che utilizza lo stesso indirizzo IP del bilanciatore del carico HTTPS e reindirizza le richieste HTTP al frontend HTTPS del bilanciatore del carico.
Questa casella di controllo può essere selezionata solo quando il protocollo HTTPS e viene utilizzato un indirizzo IP riservato.
Se vuoi testare questa procedura senza configurare un certificato SSL risorsa (o un dominio come richiesto dai certificati gestiti da Google), può configurare un bilanciatore del carico HTTP.
Per creare un bilanciatore del carico HTTP, verifica che le seguenti opzioni siano configurate con questi valori:
Proprietà Valore (digita un valore o seleziona un'opzione come specificato) Protocollo HTTP Livello di servizio di rete Premium Versione IP IPv4 Indirizzo IP Seleziona l'indirizzo IP creato nel Passaggio Prenota un indirizzo IP esterno. Porta 80 Fai clic su Fine.
Configurazione backend
- Fai clic su Configurazione backend.
- Fai clic su Servizi e bucket di backend.
- Fai clic su Crea un servizio di backend.
- Inserisci un nome.
- In Tipo di backend, seleziona Gruppo di endpoint di rete internet.
- Per Protocollo, seleziona il protocollo che intendi utilizzare dal bilanciatore del carico al NEG internet. Per questo esempio seleziona HTTP/2.
- Per Backend, nella finestra Nuovo backend, seleziona il NEG internet creato nel passaggio precedente.
- Fai clic su Crea.
Esamina e finalizza
- Fai clic su Esamina e finalizza.
- Se è tutto a posto, fai clic su Crea.
gcloud
- Crea un servizio di backend:
gcloud compute backend-services create BACKEND_SERVICE \ --global
- Aggiungi il NEG internet al servizio di backend:
gcloud compute backend-services add-backend BACKEND_SERVICE \ --network-endpoint-group=INTERNET_NEG_NAME \ --global-network-endpoint-group \ --global
- Crea una mappa URL per instradare le richieste in entrata al servizio di backend:
gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE \ --global
Esegui questo passaggio solo se vuoi creare un bilanciatore del carico HTTPS. Questo passaggio non è necessario per i bilanciatori del carico HTTP.
Per creare un bilanciatore del carico HTTPS, devi avere un Certificato SSL risorsa da utilizzare nel proxy di destinazione HTTPS. Puoi creare una risorsa del certificato SSL utilizzando un certificato SSL gestito da Google o un certificato SSL autogestito. Ti consigliamo di utilizzare i certificati gestiti da Google perché Google Cloud ottiene, gestisce e rinnova automaticamente questi certificati.
Per creare un certificato gestito da Google, devi avere un dominio. Se non hai un dominio, puoi utilizzare un certificato SSL autogestito per i test.
Per creare una risorsa del certificato SSL gestito da Google: Per creare una risorsa del certificato SSL autogestito:gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --domains DOMAIN
gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate CRT_FILE_PATH \ --private-key KEY_FILE_PATH
Crea un proxy HTTP(S) di destinazione per instradare le richieste alla mappa di URL.
Per un bilanciatore del carico HTTP, crea un proxy di destinazione HTTP:
gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --global
Per un bilanciatore del carico HTTPS, crea un proxy di destinazione HTTPS. Il proxy è parte del bilanciatore del carico che contiene il certificato SSL per il carico HTTPS Devi fare il bilanciamento del carico, in modo da caricare anche il certificato in questo passaggio.
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME \ --global
Sostituisci quanto segue:
TARGET_HTTP_PROXY_NAME
: il nome del proxy HTTP di destinazione.TARGET_HTTPS_PROXY_NAME
: il nome del proxy HTTPS di destinazione.SSL_CERTIFICATE_NAME
: il nome del certificato SSL.URL_MAP_NAME
: il nome della mappa URL.
Crea una regola di inoltro per instradare le richieste in entrata al proxy.
Per un bilanciatore del carico HTTP:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --address=LB_IP_ADDRESS_NAME \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --global \ --ports=80
Per un bilanciatore del carico HTTPS:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --address=LB_IP_ADDRESS_NAME \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --global \ --ports=443
Collegare il 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
Ora che hai configurato il bilanciatore del carico, puoi iniziare a inviare traffico al suo indirizzo IP. Se hai configurato un dominio, puoi anche inviare traffico al nome di dominio. Tuttavia, la propagazione DNS può richiedere del tempo per essere completata, quindi puoi iniziare utilizzando l'indirizzo IP per i test.
Console
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.
Invia traffico al bilanciatore del carico.
Se hai creato un bilanciatore del carico HTTP, puoi testarlo andando su
http://IP_ADDRESS
. SostituisciIP_ADDRESS
con indirizzo IP del bilanciatore del carico. Tu deve essere indirizzato all'applicazione in esecuzione sul server di un backend cloud.Se hai creato un bilanciatore del carico HTTPS, puoi testarlo andando su
https://IP_ADDRESS
. SostituisciIP_ADDRESS
con l'indirizzo IP del bilanciatore del carico. Dovresti essere reindirizzato all'applicazione in esecuzione sul backend esterno.
Se il problema persiste e utilizzi un certificato gestito da Google, conferma che lo stato della risorsa del certificato sia ACTIVE. Per ulteriori informazioni, consulta lo stato della risorsa del certificato SSL gestito da Google.
In alternativa, puoi utilizzare
curl
dalla riga di comando della tua macchina locale. SostituisciIP_ADDRESS
con l'indirizzo IPv4 del bilanciatore del carico. 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, potresti dover attendere il ha aggiornato le impostazioni DNS per la propagazione. quindi testa il dominio nel browser web.
Per assistenza con la risoluzione dei problemi, vedi Risoluzione dei problemi relativi a backend esterno e internet Problemi relativi al NEG.
Configurazione aggiuntiva
Questa sezione espande l'esempio di configurazione per fornire opzioni di configurazione alternative e aggiuntive. Tutte le attività sono facoltative. Puoi eseguire in qualsiasi ordine.
Abilita Cloud CDN
Quando Cloud CDN è abilitato, Application Load Balancer esterno invia richieste al backend NEG di internet solo in caso di mancata corrispondenza della cache di Cloud CDN.
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul nome del bilanciatore del carico che vuoi 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.Seleziona Abilita Cloud CDN.
(Facoltativo) Modifica le impostazioni della modalità cache e del TTL.
Fai clic su Aggiorna.
Per rivedere le modifiche, fai clic su Rivedi e finalizza e poi su Aggiorna.
gcloud
- Per attivare Cloud CDN nel servizio di backend, utilizza il seguente
comando:
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-cdn \ --cache-mode=CACHE_MODE
Imposta la modalità cache sostituendo
CACHE_MODE
con una delle seguenti opzioni:CACHE_All_STATIC
: memorizza automaticamente nella cache contenuti statici.USE_ORIGIN_HEADERS
(predefinito): richiede la classe origine da impostare intestazioni di memorizzazione nella cache valide da memorizzare nella cache contenuti.FORCE_CACHE_ALL
: memorizza nella cache tutti i contenuti, ignorando eventuali istruzioniprivate
,no-store
ono-cache
nelle intestazioni di rispostaCache-Control
.
Utilizzare un'intestazione personalizzata per autenticare le richieste
Per autenticare le richieste inviate al tuo backend esterno, puoi impostare un
per indicare che la richiesta proviene da un carico Google Cloud
con il bilanciatore del carico di rete
passthrough esterno regionale. Ad esempio, puoi configurare il backend esterno in modo che aspetti un valore specifico per l'intestazione Host
della richiesta HTTP e puoi configurare il servizio di backend in modo da impostare l'intestazione Host
su quel valore previsto.
Per configurare il servizio di backend in modo che aggiunga un'intestazione Host
personalizzata a ogni richiesta, segui i passaggi che seguono.
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.Fai clic su Configurazioni avanzate.
Per Intestazioni delle richieste personalizzate, fai clic su Aggiungi intestazione:
- In Nome intestazione, inserisci
Host
. - In Valore intestazione, inserisci
FQDN_NEG_ENDPOINT
.
- In Nome intestazione, inserisci
Fai clic su Aggiorna.
Per rivedere le modifiche, fai clic su Rivedi e finalizza e poi su Aggiorna.
gcloud
- Utilizza il comando seguente per configurare il servizio di backend in modo da aggiungere un'istanza personalizzata
L'intestazione "Host" a ogni richiesta.
gcloud compute backend-services update BACKEND_SERVICE \ --custom-request-header "Host: HEADER_VALUE" \ --global
Assicurati di aver configurato anche il backend esterno in modo da prevedere un Host
per autenticare le richieste in entrata.
Per informazioni generali sulle intestazioni delle richieste personalizzate, consulta richiesta intestazioni. Per altri metodi di autenticazione, consulta Autentica le richieste al backend esterno.
Abilita IAP sul bilanciatore del carico delle applicazioni esterno
Nota: IAP non è compatibile con Cloud CDN.Puoi configurare gli acquisti in-app in modo che siano attivati o disattivati (impostazione predefinita). Se attivata, devi fornire valori per
oauth2-client-id
e oauth2-client-secret
.
Per abilitare l'IAP, aggiorna il servizio di backend in modo da includere il flag --iap=enabled
con oauth2-client-id
e oauth2-client-secret
.
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --iap=enabled,oauth2-client-id=ID,oauth2-client-secret=SECRET \ --global
Se vuoi, puoi abilitare l'IAP per una risorsa Compute Engine utilizzando la console Google Cloud, gcloud CLI o l'API.
Passaggi successivi
- Per verificare se Cloud CDN fornisce risposte dalla cache, consulta Visualizzazione dei log.
- Per scoprire quali contenuti possono essere memorizzati o meno nella cache, consulta: Panoramica della memorizzazione nella cache.
- Per trovare i punti di presenza (POP) di Cloud CDN, consulta Cache di località.
- Esegui la pulizia della configurazione del bilanciatore del carico.