Questo documento fornisce istruzioni per configurare un bilanciatore del carico di rete proxy classico con un proxy SSL di destinazione e backend di gruppi di istanze VM. Prima di iniziare, consulta Panoramica del bilanciatore del carico di rete proxy esterno per informazioni sul funzionamento di questi bilanciatori del carico.
Panoramica della configurazione
Questo esempio mostra come configurare un bilanciatore del carico di rete proxy esterno per un servizio esistente in due regioni: REGION_A
e REGION_B
. Configurerai quanto segue:
- Quattro istanze distribuite tra due regioni
- Gruppi di istanze per la conservazione delle istanze
- Componenti di backend, che includono quanto segue:
- Controllo di integrità: utilizzato per monitorare l'integrità dell'istanza
- Servizio di backend: monitora i gruppi di istanze ed evita che superino i limiti di utilizzo
- Backend: archivia i gruppi di istanze
- Componenti di frontend, che includono i seguenti:
- Una risorsa del certificato SSL. Puoi utilizzare un certificato autogestito, nel quale fornisci il tuo certificato SSL, oppure un certificato gestito da Google, nel quale Google emette un certificato valido per tutti i tuoi domini. Per ulteriori informazioni, consulta la pagina relativa ai tipi di certificati SSL.
- Lo stesso proxy SSL con il relativo certificato SSL
- Un indirizzo IPv4 statico esterno e una regola di forwarding che invia il traffico utente al proxy
- Un indirizzo IPv6 statico esterno e una regola di forwarding che invia il traffico dell'utente al proxy
- Una regola firewall che consente il traffico dal bilanciatore del carico e dal controllo di integrità alle istanze.
- Facoltativamente, un criterio SSL per controllare le funzionalità di SSL negoziate con i client dal bilanciatore del carico del proxy SSL.
In seguito, eseguirai un test della configurazione.
Autorizzazioni
Per seguire questa guida, devi essere in grado di creare istanze e modificare una rete in un progetto. Devi essere un proprietario o un editor del progetto oppure devi disporre di tutti i seguenti ruoli IAM di Compute Engine:
Attività | Ruolo richiesto |
---|---|
Crea reti, subnet e componenti del bilanciatore del carico | Amministratore rete |
Aggiungi e rimuovi regole firewall | Amministratore sicurezza |
Creare istanze | Amministratore istanze Compute |
Per ulteriori informazioni, consulta le seguenti guide:
Configurare la rete e le subnet
Per creare la rete e la subnet di esempio, segui questi passaggi.
Console
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
Inserisci un nome per la rete.
Scegli Personalizzata per Modalità di creazione subnet.
Nella sezione Nuova subnet, specifica i seguenti parametri di configurazione per una subnet:
- Nel campo Nome, specifica un nome per la subnet.
- Nel campo Regione, inserisci il nome di una regione.
- Per Tipo di stack IP, seleziona IPv4 (stack singolo).
- Nel campo Intervallo di indirizzi IP, inserisci un intervallo di indirizzi IP. Questo è l'intervallo IPv4 principale per la subnet.
Fai clic su Fine.
Per aggiungere una subnet in un'altra regione, fai clic su Aggiungi subnet e ripeti i passaggi precedenti.
Fai clic su Crea.
gcloud
gcloud compute networks subnets update SUBNET \ --network=NETWORK \ --stack-type=IPV4_ONLY \ --range=10.1.2.0/24 \ --region=REGION_A
Sostituisci quanto segue:
NETWORK
: un nome per la rete VPCSUBNET
: un nome per la subnetREGION_A
: il nome della regione
Configura istanze e gruppi di istanze
Questa sezione mostra come creare istanze e gruppi di istanze e quindi aggiungere le istanze ai gruppi di istanze. Un sistema di produzione utilizzerebbe in genere gruppi di istanze gestite in base a modelli di istanza, ma questa configurazione è più veloce per i test iniziali.
Creare istanze
Crea queste istanze con il tag ssl-lb
, che la regola firewall utilizzerà in seguito.
Console
Crea istanze
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su Crea istanza.
Imposta il campo Nome su
ig-a
.Imposta il campo Regione su
REGION_A
.Imposta il campo Zona su
ZONE_A
.Fai clic su Opzioni avanzate.
Fai clic su Networking e configura il seguente campo:
- Nel campo Tag di rete, inserisci
ssl-lb
eallow-health-check-ipv6
.
- Nel campo Tag di rete, inserisci
Nella sezione Interfacce di rete, fai clic su Modifica e apporta le seguenti modifiche:
- Seleziona la rete.
Seleziona una subnet.
Fai clic su Fine.
Fai clic su Gestione. Inserisci lo script seguente nel campo Script di avvio.
sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>ig-a</h1></body></html>' | sudo tee /var/www/html/index.html
Lascia invariati i valori predefiniti per gli altri campi.
Fai clic su Crea.
Crea
ig-b
con le stesse impostazioni, con le seguenti eccezioni:Imposta il campo Script di avvio su quanto segue:
sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>ig-b</h1></body></html>' | sudo tee /var/www/html/index.html
Crea
ig-c
con le stesse impostazioni, con le seguenti eccezioni:- Imposta il campo Regione su
REGION_B
. - Imposta il campo Zona su
ZONE_B
. Imposta lo Script di avvio su quanto segue:
sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>ig-c</h1></body></html>' | sudo tee /var/www/html/index.html
- Imposta il campo Regione su
Crea
ig-d
con le stesse impostazioni, con le seguenti eccezioni:- Imposta il campo Regione su
REGION_B
. - Imposta il campo Zona su
ZONE_B
. Imposta lo Script di avvio su quanto segue:
sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>ig-d</h1></body></html>' | sudo tee /var/www/html/index.html
- Imposta il campo Regione su
gcloud
Per supportare il traffico IPv4, esegui questo comando:
Crea
ig-a
nella zonaZONE_A
.gcloud compute instances create ig-a \ --image-family debian-10 \ --image-project debian-cloud \ --tags ssl-lb \ --subnet SUBNET \ --zone ZONE_A \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>ig-a</h1></body></html>' | sudo tee /var/www/html/index.html EOF"
Crea
ig-b
nella zonaZONE_A
.gcloud compute instances create ig-b \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=ssl-lb \ --subnet SUBNET \ --zone=ZONE_A \ --metadata=startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>ig-b</h1></body></html>' | sudo tee /var/www/html/index.html EOF"
Crea
ig-c
nella regioneREGION_B
e nella zonaZONE_B
.gcloud compute instances create ig-c \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=ssl-lb \ --subnet SUBNET \ --region=REGION_B \ --zone=ZONE_B \ --metadata=startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>ig-c</h1></body></html>' | sudo tee /var/www/html/index.html EOF"
Crea
ig-d
nella regioneREGION_B
e nella zonaZONE_B
.gcloud compute instances create ig-d \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=ssl-lb \ --subnet SUBNET \ --region=REGION_B \ --zone=ZONE_B \ --metadata=startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>ig-d</h1></body></html>' | sudo tee /var/www/html/index.html EOF"
Creare un gruppo di istanze per ogni zona e aggiungere istanze
Console
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Fai clic su Crea gruppo di istanze.
Fai clic su Nuovo gruppo di istanze non gestite.
Imposta il campo Nome su
us-ig1
.Seleziona
REGION_A
.Imposta il campo Zona su
ZONE_A
.Seleziona la rete.
Seleziona una subnet.
In Mappatura delle porte, fai clic su Aggiungi porta. Un bilanciatore del carico invia il traffico a un gruppo di istanze tramite una porta con nome. Crea una porta denominata per mappare il traffico in entrata a un numero di porta specifico.
- Inserisci il Nome porta di
ssl-lb
e i Numeri di porta pari a443
.
- Inserisci il Nome porta di
Nell'elenco Istanze VM, seleziona
ig-a
eig-b
.Lascia invariate le altre impostazioni.
Fai clic su Crea.
Ripeti i passaggi, ma imposta quanto segue:
- Nome:
us-ig2
- Regione:
REGION_B
- Zona:
ZONE_B
- Nome porta:
ssl-lb
- Numeri di porta:
443
- Istanze: ig-c e ig-d.
- Nome:
Conferma di avere due gruppi di istanze, ciascuno con due istanze.
gcloud
Crea il gruppo di istanze
us-ig1
.gcloud compute instance-groups unmanaged create us-ig1 --zone ZONE_A
Imposta una porta denominata per il gruppo di istanze.
gcloud compute instance-groups set-named-ports us-ig1 \ --named-ports=ssl-lb:443 \ --zone=ZONE_A
Aggiungi
ig-a
eig-b
aus-ig1
gcloud compute instance-groups unmanaged add-instances us-ig1 \ --instances=ig-a,ig-b \ --zone=ZONE_A
Crea il gruppo di istanze
us-ig2
.gcloud compute instance-groups unmanaged create us-ig2 \ --zone ZONE_B
Imposta una porta denominata per il gruppo di istanze.
gcloud compute instance-groups set-named-ports us-ig2 \ --named-ports=ssl-lb:443 \ --zone=ZONE_B
Aggiungi
ig-c
eig-d
aus-ig2
gcloud compute instance-groups unmanaged add-instances us-ig2 \ --instances=ig-c,ig-d \ --zone=ZONE_B
Ora hai un gruppo di istanze in ciascuna delle due regioni, ciascuna con due istanze.
Crea una regola firewall per il bilanciatore del carico SSL
Configura il firewall per consentire il traffico dal bilanciatore del carico e il controllo di integrità alle istanze.
Console
Nella console Google Cloud, vai alla pagina Criteri firewall.
Fai clic su Crea regola firewall.
Nel campo Nome, inserisci
allow-ssl-lb-and-health
.Seleziona la rete.
In Destinazioni, seleziona Tag di destinazione specificati.
Imposta Tag di destinazione su
ssl-lb
.Imposta Filtro di origine su Intervalli IPv4.
Imposta Intervalli IPv4 di origine su
130.211.0.0/22
e35.191.0.0/16
.In Protocolli e porte, imposta Protocolli e porte specificati su
tcp:443
.Fai clic su Crea.
gcloud
gcloud compute firewall-rules create allow-ssl-lb-and-health \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=ssl-lb \ --allow=tcp:443
Se utilizzi un certificato gestito da Google, verifica che lo stato della risorsa di certificato sia ATTIVO. Per ulteriori informazioni, consulta lo stato delle risorse del certificato SSL gestito da Google.
gcloud compute ssl-certificates list
configura 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.
- In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
- Per Proxy o passthrough, seleziona Bilanciatore del carico del proxy e fai clic su Avanti.
- In Pubblico o interno, seleziona Per il pubblico (esterno) e fai clic su Avanti.
- In Deployment a regione singola o globale, seleziona Ideale per carichi di lavoro globali e fai clic su Avanti.
- In Generazione del bilanciatore del carico, seleziona Bilanciatore del carico di rete proxy classico e fai clic su Avanti.
- Fai clic su Configura.
Configurazione di base
Imposta il campo Nome su my-ssl-lb
.
Configurazione backend
- Fai clic su Configurazione backend.
- In Tipo di backend, seleziona Gruppi di istanze.
- Imposta Protocollo su SSL.
- In Porta denominata, inserisci
ssl-lb
. - Accetta il valore predefinito per Timeout.
- Lascia l'opzione Tipo di backend impostata su Gruppi di istanze.
- Configura il primo backend:
- In Nuovo backend, seleziona il gruppo di istanze
us-ig1
. - Imposta Numeri di porta su
443
. - Mantieni i valori predefiniti rimanenti.
- In Nuovo backend, seleziona il gruppo di istanze
- Configura il secondo backend:
- Fai clic su Aggiungi backend.
- Seleziona il gruppo di istanze
us-ig2
. - Imposta Numeri di porta su
443
. - Fai clic su Fine.
- Configura il controllo di integrità:
- In Controllo di integrità, seleziona Crea controllo di integrità.
- Imposta il Nome del controllo di integrità su
my-ssl-health-check
. - In Protocollo, seleziona SSL.
- Mantieni i valori predefiniti rimanenti.
- Fai clic su Salva e continua.
- Nella console Google Cloud, verifica che sia presente un segno di spunta accanto a Configurazione backend. In caso contrario, assicurati di aver completato tutti i passaggi.
Configurazione frontend
- Fai clic su Configurazione frontend.
- Inserisci un Nome pari a
my-ssl-lb-forwarding-rule
. - In Protocollo, seleziona SSL.
- In Indirizzo IP, seleziona Crea indirizzo IP:
- Inserisci un Nome pari a
ssl-lb-static-ipv4
. - Fai clic su Prenota.
- Inserisci un Nome pari a
- In Certificato, seleziona Crea un nuovo certificato.
- Inserisci un Nome pari a
my-ssl-cert
. - Se scegli Carica il mio certificato, completa i seguenti passaggi:
- Incolla il certificato o fai clic su Carica per passare al file del certificato.
- Incolla la chiave privata o fai clic su Carica per accedere al file della chiave privata.
- Se scegli Crea certificato gestito da Google, inserisci un Dominio.
- Per inserire altri domini, fai clic su Aggiungi dominio.
- Fai clic su Crea.
- Per aggiungere risorse di certificato oltre alla risorsa del certificato SSL principale, fai clic su Certificati aggiuntivi. A questo punto, seleziona un altro certificato dal menu Certificati o fai clic su Crea un nuovo certificato e segui le istruzioni fornite nei passaggi precedenti.
- In Criterio SSL, seleziona Crea un criterio.
- Inserisci un Nome pari a
my-ssl-policy
. - Per Versione TLS minima, seleziona TLS 1.0.
- In Profilo, seleziona Moderno. Vengono visualizzate le Funzionalità attivate e Funzionalità disattivate.
- Fai clic su Salva.
- (Facoltativo) Attiva Protocollo proxy.
- Fai clic su Fine.
- Fai clic su Aggiungi IP e porta frontend.
- Inserisci un Nome pari a
my-ssl-lb-ipv6-forwarding-rule
. - Imposta Versione IP su
IPv6
. - In Indirizzo IP, fai clic su Crea indirizzo IP.
- Inserisci un nome di
ssl-lb-static-ipv6
. - Fai clic su Prenota.
- Inserisci un nome di
- In Certificato, seleziona
my-ssl-cert
. - Per aggiungere risorse di certificato oltre alla risorsa del certificato SSL principale, seleziona un certificato dall'elenco Certificati o fai clic su Crea un nuovo certificato.
- (Facoltativo) Utilizza un criterio SSL o attiva il Protocollo proxy.
- Fai clic su Fine.
- Verifica che sia presente un segno di spunta verde accanto a Configurazione frontend nella console Google Cloud. In caso contrario, assicurati di aver completato tutti i passaggi precedenti.
- Fai clic su Fine.
- Aggiungi la prima regola di forwarding:
- Facoltativo: per creare un criterio SSL:
- Aggiungi la seconda regola di forwarding:
Esamina e finalizza
- Fai clic su Esamina e finalizza.
- Rivedi le impostazioni di configurazione del bilanciatore del carico.
- (Facoltativo) Fai clic su Codice equivalente per visualizzare la richiesta API REST che verrà utilizzata per creare il bilanciatore del carico.
- Fai clic su Crea.
gcloud
- Creare un controllo di integrità.
gcloud compute health-checks create ssl my-ssl-health-check --port=443
- Crea un servizio di backend.
gcloud compute backend-services create my-ssl-lb \ --load-balancing-scheme EXTERNAL \ --global-health-checks \ --protocol=SSL \ --port-name=ssl-lb \ --health-checks=my-ssl-health-check \ --timeout=5m \ --global
In alternativa, puoi configurare la comunicazione non criptata dal bilanciatore del carico alle istanze utilizzando
--protocol=TCP
. - Aggiungi gruppi di istanze al tuo servizio di backend.
gcloud compute backend-services add-backend my-ssl-lb \ --instance-group=us-ig1 \ --instance-group-zone=ZONE_A \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --global
gcloud compute backend-services add-backend my-ssl-lb \ --instance-group=us-ig2 \ --instance-group-zone=ZONE_B \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --global
- Configura la risorsa del certificato SSL.
Se utilizzi certificati autogestiti, devi già avere almeno un certificato SSL da caricare. In caso contrario, consulta la panoramica dei certificati SSL. Quando utilizzi più certificati SSL, devi crearli uno alla volta.
Se utilizzi certificati SSL autogestiti e non hai una chiave privata e un certificato firmato, puoi creare e utilizzare un certificato autofirmato a scopo di test.
Per creare una risorsa del certificato SSL autogestito:
gcloud compute ssl-certificates create my-ssl-cert \ --certificate=CRT_FILE_PATH \ --private-key=KEY_FILE_PATH
Per creare una risorsa del certificato SSL gestita da Google:
gcloud compute ssl-certificates create www-ssl-cert \ --domains=DOMAIN_1,DOMAIN_2
- Configura un proxy SSL di destinazione.
I bilanciatori del carico di rete del proxy esterno supportano la creazione di un proxy SSL di destinazione con da uno a quindici certificati SSL. Prima di eseguire questo comando, devi creare una risorsa del certificato SSL per ciascun certificato.
Se vuoi attivare l'intestazione proxy, impostala su
PROXY_V1
anziché sunone
. Facoltativamente, puoi collegare un criterio SSL al proxy di destinazione. Per prima cosa, crea il criterio.gcloud compute ssl-policies create my-ssl-policy \ --profile=MODERN \ --min-tls-version=1.0
Quindi è stato collegato il criterio al proxy di destinazione.
gcloud compute target-ssl-proxies create my-ssl-lb-target-proxy \ --backend-service=my-ssl-lb \ --ssl-certificates=[SSL_CERT_1][,[SSL_CERT_2],...] \ --ssl-policy=my-ssl-policy \ --proxy-header=NONE
- Prenota indirizzi IP statici globali.
I tuoi clienti utilizzano questi indirizzi IP per accedere al servizio con bilanciamento del carico.
gcloud compute addresses create ssl-lb-static-ipv4 \ --ip-version=IPV4 \ --global
gcloud compute addresses create ssl-lb-static-ipv6 \ --ip-version=IPV6 \ --global
- Configurare le regole di forwarding globali.
Creare regole di forwarding globali associate al proxy di destinazione. Sostituisci LB_STATIC_IP e LB_STATIC_IPV6 con gli indirizzi IP generati in Prenota indirizzi IP statici globali.
gcloud compute forwarding-rules create my-ssl-lb-forwarding-rule \ --load-balancing-scheme EXTERNAL \ --global \ --target-ssl-proxy=my-ssl-lb-target-proxy \ --address=LB_STATIC_IP \ --ports=443
gcloud compute forwarding-rules create my-ssl-lb-ipv6-forwarding-rule \ --load-balancing-scheme EXTERNAL \ --global \ --target-ssl-proxy=my-ssl-lb-target-proxy \ --address=LB_STATIC_IPV6 \ --ports=443
Connetti il tuo dominio al bilanciatore del carico
Dopo aver creato il bilanciatore del carico, prendi nota dell'indirizzo IP associato al bilanciatore del carico, ad esempio 30.90.80.100
. Per puntare il tuo dominio al bilanciatore del carico, crea un record A
utilizzando il servizio di registrazione del dominio. Se hai aggiunto più domini al certificato SSL, devi aggiungere un record A
per ciascuno, tutti puntati all'indirizzo IP del bilanciatore del carico. Ad esempio, per creare i 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 record.
Testa il bilanciatore del carico
Nel browser web, connettiti all'indirizzo IP statico tramite HTTPS. In questa configurazione di test, le istanze utilizzano certificati autofirmati. Di conseguenza, la prima volta che accedi a una pagina viene visualizzato un avviso nel browser. Fai clic sull'avviso per visualizzare la pagina effettiva. Sostituisci IP_ADDRESS con l'indirizzo IPv4 o IPv6 che hai creato in precedenza.
https://IP_ADDRESS
Dovresti vedere uno degli host nella regione più vicina a te. Ricarica la pagina finché non vedi l'altra istanza in quella regione. Per visualizzare le istanze dell'altra regione, arresta le istanze nella regione più vicina.
In alternativa, puoi utilizzare curl
dalla riga di comando della macchina locale.
Se utilizzi un certificato autofirmato sul proxy SSL, devi specificare anche -k
. L'opzione curl -k
consente il funzionamento di curl anche se non disponi di un certificato autofirmato o non hai alcun certificato. Se disponi di un certificato normale, puoi rimuovere quel parametro. Dovresti usare il parametro -k
solo per testare il tuo sito. In circostanze normali, un certificato valido è una misura di sicurezza importante e gli avvisi relativi ai certificati non devono essere ignorati.
Sostituisci IP_ADDRESS con l'indirizzo IPv4 o IPv6 che hai creato in precedenza.
curl -k https://IP_ADDRESS
Se non riesci a raggiungere il bilanciatore del carico, prova a seguire i passaggi descritti in Risolvere i problemi di configurazione.
Opzioni di configurazione aggiuntive
Questa sezione espande l'esempio di configurazione per fornire opzioni di configurazione alternative e aggiuntive. Tutte le attività sono facoltative. Puoi eseguirli in qualsiasi ordine.
Protocollo PROXY per la conservazione delle informazioni di connessione del client
Il bilanciatore del carico di rete proxy termina le connessioni TCP dal client e crea nuove connessioni alle istanze. Per impostazione predefinita, le informazioni sull'IP e sulla porta del client originale non vengono conservate.
Per conservare e inviare le informazioni di connessione originali alle istanze, abilita la versione 1 del protocollo PROXY. Questo protocollo invia all'istanza un'intestazione aggiuntiva contenente l'indirizzo IP di origine, l'indirizzo IP di destinazione e i numeri di porta all'istanza come parte della richiesta.
Assicurati che nelle istanze di backend del bilanciatore del carico di rete proxy siano in esecuzione server che supportano le intestazioni di protocollo PROXY. Se i server non sono configurati per supportare le intestazioni del protocollo PROXY, le istanze di backend restituiscono risposte vuote.
Se imposti il protocollo PROXY per il traffico degli utenti, puoi impostarlo anche per i controlli di integrità. Se controlli l'integrità e pubblichi contenuti sulla stessa porta, imposta il valore --proxy-header
del controllo di integrità in modo che corrisponda all'impostazione del bilanciatore del carico.
L'intestazione del protocollo PROXY è in genere una singola riga di testo leggibile dall'utente nel seguente formato:
PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n
L'esempio seguente mostra un protocollo PROXY:
PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n
Nell'esempio precedente, l'IP client è 192.0.2.1
, l'IP di bilanciamento del carico è
198.51.100.1
, la porta client è 15221
e la porta di destinazione è 110
.
Quando l'IP del client non è noto, il bilanciatore del carico genera un'intestazione di protocollo PROXY nel seguente formato:
PROXY UNKNOWN\r\n
Aggiorna l'intestazione del protocollo PROXY per il proxy di destinazione
L'esempio di configurazione del bilanciatore del carico in questa pagina mostra come abilitare l'intestazione del protocollo PROXY durante la creazione del bilanciatore del carico di rete proxy. Utilizza questi passaggi per modificare l'intestazione del protocollo PROXY per un proxy di destinazione esistente.
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic su Modifica per il bilanciatore del carico.
- Fai clic su Configurazione frontend.
- Modifica il valore del campo Protocollo proxy impostandolo su On.
- Fai clic su Update (Aggiorna) per salvare le modifiche.
gcloud
Nel comando seguente, modifica il campo --proxy-header
e impostalo su NONE
o PROXY_V1
, in base alle tue esigenze.
gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \ --proxy-header=[NONE | PROXY_V1]
Configura affinità sessione
Queste procedure mostrano come aggiornare un servizio di backend per il bilanciatore del carico del proxy SSL di esempio in modo che il servizio di backend utilizzi l'affinità IP client.
Quando l'affinità IP client è abilitata, il bilanciatore del carico indirizza le richieste di un particolare client alla stessa VM di backend in base a un hash creato dall'indirizzo IP del client e dall'indirizzo IP del bilanciatore del carico (l'indirizzo IP esterno di una regola di forwarding esterna).
Console
Per abilitare l'affinità sessione IP client:
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic su Backend.
Fai clic su my-ssl-lb (il nome del servizio di backend creato per questo esempio) e fai clic su Modifica.
Nella pagina Dettagli del servizio di backend, fai clic su Configurazione avanzata.
In Affinità sessione, seleziona IP client dal menu.
Fai clic su Update (Aggiorna).
gcloud
Utilizza il comando seguente per aggiornare il servizio di backend my-ssl-lb
, specificando l'affinità sessione IP client:
gcloud compute backend-services update my-ssl-lb \ --global \ --session-affinity=CLIENT_IP
API
Per impostare l'affinità sessione IP client, effettua una richiesta PATCH
al metodo
backendServices/patch
.
PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/us-west1/backendServices/my-ssl-lb
{
"sessionAffinity": "CLIENT_IP"
}
Abilita lo svuotamento della connessione
Puoi abilitare lo svuotamento della connessione sui servizi di backend per garantire interruzioni minime per i tuoi utenti quando un'istanza che gestisce il traffico viene terminata, rimossa manualmente o rimossa da un gestore della scalabilità automatica. Per scoprire di più sullo svuotamento della connessione, consulta la documentazione sull'abilitazione dello svuotamento delle connessioni.
Passaggi successivi
- Per informazioni su come funziona il monitoraggio per i bilanciatori del carico di rete proxy esterni, consulta Logging e monitoraggio del bilanciatore del carico di rete proxy esterno.
- Per informazioni su come funzionano i criteri SSL, consulta la panoramica dei criteri SSL.
- Per informazioni sulla configurazione dei criteri SSL, consulta Utilizzo dei criteri SSL.