Configura un bilanciatore del carico di rete proxy esterno globale (proxy SSL) con backend di gruppi di istanze VM

Questo documento fornisce istruzioni per configurare un bilanciatore del carico di rete proxy esterno globale con un proxy SSL di destinazione e backend di gruppi di istanze VM. Prima di iniziare, leggi la panoramica del bilanciatore del carico di rete proxy esterno per informazioni su come funzionano questi bilanciatori del carico.

Panoramica della configurazione

Questo esempio mostra come configurare un bilanciatore del carico di rete proxy esterno per un servizio che esiste in due regioni: la regione A e la regione B. Configura quanto segue:

  1. Quattro istanze distribuite in due regioni
  2. Gruppi di istanze per contenere le istanze
  3. 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 configurati
    • Backend: contengono i gruppi di istanze
  4. Componenti frontend, che includono quanto segue:
    • Una risorsa del certificato SSL. Puoi utilizzare un certificato autogestito, in cui fornisci il tuo certificato SSL, o un certificato gestito da Google, in cui Google rilascia un certificato valido per tutti i tuoi domini. Per saperne di più, consulta Tipi di certificati SSL.
    • Il proxy SSL stesso con il relativo certificato SSL
    • Un indirizzo IPv4 statico esterno e una regola di forwarding che invia il traffico degli utenti al proxy
    • Un indirizzo IPv6 esterno statico e una regola di forwarding che invia il traffico degli utenti al proxy
  5. Una regola firewall che consente il traffico dal bilanciatore del carico e dal controllo di integrità alle istanze.
  6. (Facoltativo) Una policy SSL per controllare le funzionalità di SSL che il bilanciatore del carico del proxy SSL negozia con i client.

Dopodiché, testerai la 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 di rete
Aggiungere e rimuovere regole firewall Amministratore della sicurezza
Creazione delle istanze Compute Instance Admin

Per ulteriori informazioni, consulta le seguenti guide:

Configura la rete e le subnet

Per creare la rete e la subnet di esempio, segui questi passaggi.

Console

Per supportare il traffico IPv4 e IPv6, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Fai clic su Crea rete VPC.

  3. Inserisci un nome per la rete.

  4. (Facoltativo) Se vuoi configurare intervalli di indirizzi IPv6 interni sulle subnet di questa rete, completa questi passaggi:

    1. Per Intervallo IPv6 interno ULA rete VPC, seleziona Attivato.
    2. Per Alloca intervallo IPv6 interno, seleziona Automaticamente o Manualmente.

      Se selezioni Manualmente, inserisci un intervallo di /48 all'interno dell'intervallo fd20::/20. Se l'intervallo è in uso, ti viene chiesto di fornire un intervallo diverso.

  5. Per la Modalità di creazione subnet, scegli Personalizzata.

  6. Nella sezione Nuova subnet, configura i seguenti campi:

    1. Nel campo Nome, fornisci un nome per la subnet.
    2. Nel campo Regione, seleziona una regione.
    3. Per Tipo di stack IP, seleziona IPv4 e IPv6 (stack doppio).
    4. Nel campo Intervallo di indirizzi IP, inserisci un intervallo di indirizzi IP. Questo è l'intervallo IPv4 principale per la subnet.

      Sebbene tu possa configurare un intervallo di indirizzi IPv4 per la subnet, non puoi scegliere l'intervallo di indirizzi IPv6 per la subnet. Google fornisce un blocco CIDR IPv6 di dimensioni fisse (/64).

    5. Per Tipo di accesso IPv6, seleziona Esterno.

  7. Fai clic su Fine.

  8. Per aggiungere una subnet in una regione diversa, fai clic su Aggiungi subnet e ripeti i passaggi precedenti.

  9. Fai clic su Crea.

Per supportare solo il traffico IPv4:

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Fai clic su Crea rete VPC.

  3. Nel campo Nome, inserisci un nome per la rete.

  4. Per la Modalità di creazione subnet, scegli Personalizzata.

  5. Nella sezione Nuova subnet, configura quanto segue:

    1. Nel campo Nome, fornisci un nome per la subnet.
    2. Nel campo Regione, seleziona una regione.
    3. Per Tipo di stack IP, seleziona IPv4 (stack singolo).
    4. Nel campo Intervallo di indirizzi IP, inserisci l'intervallo IPv4 primario per la subnet.
  6. Fai clic su Fine.

  7. Per aggiungere una subnet in una regione diversa, fai clic su Aggiungi subnet e ripeti i passaggi precedenti.

  8. Fai clic su Crea.

gcloud

  1. Crea la rete VPC in modalità personalizzata:

    gcloud compute networks create NETWORK \
        --subnet-mode=custom
    
  2. All'interno della rete, crea una subnet per i backend.

    Per il traffico IPv4 e IPv6, utilizza il seguente comando per aggiornare una subnet:

    gcloud compute networks subnets create SUBNET \
       --stack-type=IPV4_IPV6 \
       --ipv6-access-type=EXTERNAL \
       --network=NETWORK \
       --range=IPV4_RANGE \
       --region=REGION_A
    
    gcloud compute networks subnets create SUBNET_B \
       --stack-type=IPV4_IPV6 \
       --ipv6-access-type=EXTERNAL \
       --network=NETWORK \
       --range=IPV4_RANGE_B \
       --region=REGION_B
    

    Per Solo traffico IPv4, utilizza il seguente comando:

    gcloud compute networks subnets create SUBNET \
       --network=NETWORK \
       --stack-type=IPV4_ONLY \
       --range=IPV4_RANGE \
       --region=REGION_A
    
    gcloud compute networks subnets create SUBNET_B \
       --network=NETWORK \
       --stack-type=IPV4_ONLY \
       --range=IPV4_RANGE_B \
       --region=REGION_B
    

Sostituisci quanto segue:

  • NETWORK: un nome per la rete VPC

  • IPV4_RANGE: l'intervallo IPv4 principale per la nuova subnet, nella notazione CIDR. Ad esempio, 10.1.2.0/24.

  • SUBNET: un nome per la subnet

  • REGION_A o REGION_B: il nome della regione

Configura istanze e gruppi di istanze

Questa sezione mostra come creare istanze e gruppi di istanze, quindi aggiungere le istanze ai gruppi di istanze. Un sistema di produzione normalmente utilizza gruppi di istanze gestite basati su modelli di istanza, ma questa configurazione è più rapida per i test iniziali.

Creazione delle istanze

Crea queste istanze con il tag ssl-lb, che verrà utilizzato in un secondo momento dalla regola firewall.

Console

Crea istanze

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic su Crea istanza.

  3. Imposta Nome su vm-a1.

  4. Imposta Zona su ZONE_A.

  5. Fai clic su Opzioni avanzate.

  6. Fai clic su Networking e configura il seguente campo:

    • Nel campo Tag di rete, inserisci ssl-lb e allow-health-check-ipv6.
  7. Nella sezione Interfacce di rete, fai clic su Modifica e apporta le seguenti modifiche:

    • Seleziona la rete.
    • Seleziona una subnet.

    • Nel campo Tipo di stack IP, seleziona IPv4 e IPv6 (stack doppio).

    • Fai clic su Fine.

  8. Fai clic su Gestione. Inserisci lo script che segue 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>vm-a1</h1></body></html>' | sudo tee /var/www/html/index.html
  9. Lascia i valori predefiniti per i restanti campi.

  10. Fai clic su Crea.

  11. Crea vm-a2 con le stesse impostazioni, tranne che con Script di avvio impostato 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>vm-a2</h1></body></html>' | sudo tee /var/www/html/index.html
  12. Crea vm-b1 con le stesse impostazioni, ad eccezione di Zona impostata su ZONE_B e Script di avvio impostato 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>vm-b1</h1></body></html>' | sudo tee /var/www/html/index.html
  13. Crea vm-b2 con le stesse impostazioni, ad eccezione di Zona impostata su ZONE_B e Script di avvio impostato 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>vm-b2</h1></body></html>' | sudo tee /var/www/html/index.html

gcloud

  1. Crea vm-a1 nella zona ZONE_A.

    gcloud compute instances create vm-a1 \
       --image-family debian-12 \
       --image-project debian-cloud \
       --tags ssl-lb \
       --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>vm-a1</h1></body></html>' | sudo tee /var/www/html/index.html
         EOF"
    
  2. Crea vm-a2 nella zona ZONE_A.

    gcloud compute instances create vm-a2 \
      --image-family=debian-12 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --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>vm-a2</h1></body></html>' | sudo tee /var/www/html/index.html
         EOF"
    
  3. Crea vm-b1 nella zona ZONE_B.

    gcloud compute instances create vm-b1 \
      --image-family=debian-12 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --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>vm-b1</h1></body></html>' | sudo tee /var/www/html/index.html
        EOF"
    
  4. Crea vm-b2 nella zona ZONE_B.

    gcloud compute instances create vm-b2 \
      --image-family=debian-12 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --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>vm-b2</h1></body></html>' | sudo tee /var/www/html/index.html
        EOF"
    

Crea un gruppo di istanze per ogni zona e aggiungi istanze

Console

  1. Nella console Google Cloud , vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Fai clic su Crea gruppo di istanze.

  3. Imposta Nome su instance-group-a.

  4. Imposta Zona su ZONE_A.

  5. In Mappatura delle porte, fai clic su Aggiungi porta. Un bilanciatore del carico invia il traffico a un gruppo di istanze tramite una porta denominata. Crea una porta denominata per mappare il traffico in entrata a un numero di porta specifico.

    1. Inserisci un Nome porta di ssl-lb e Numeri di porta di 443.
  6. In Definizione istanza, fai clic su Seleziona istanze esistenti.

  7. In Istanze VM, seleziona vm-a1 e vm-a2.

  8. Lascia invariate le altre impostazioni.

  9. Fai clic su Crea.

  10. Ripeti i passaggi, ma imposta quanto segue:

    • Nome: instance-group-b
    • Zona: ZONE_B
    • Nome porta di ssl-lb e Numeri di porta di 443
    • Istanze: vm-b1 e vm-b2.
  11. Verifica di avere ora due gruppi di istanze, ciascuno con due istanze.

gcloud

  1. Crea il gruppo di istanze instance-group-a.

    gcloud compute instance-groups unmanaged create instance-group-a --zone ZONE_A
    
  2. Imposta una porta denominata per il gruppo di istanze.

    gcloud compute instance-groups set-named-ports instance-group-a \
        --named-ports=ssl-lb:443 \
        --zone=ZONE_A
    
  3. Aggiungi vm-a1 e vm-a2 a instance-group-a

    gcloud compute instance-groups unmanaged add-instances instance-group-a \
        --instances=vm-a1,vm-a2 \
        --zone=ZONE_A
    
  4. Crea il gruppo di istanze instance-group-b.

    gcloud compute instance-groups unmanaged create instance-group-b --zone ZONE_B
    
  5. Imposta una porta denominata per il gruppo di istanze.

    gcloud compute instance-groups set-named-ports instance-group-b \
        --named-ports=ssl-lb:443 \
        --zone=ZONE_B
    
  6. Aggiungi vm-b1 e vm-b2 a instance-group-b

    gcloud compute instance-groups unmanaged add-instances instance-group-b \
        --instances=vm-b1,vm-b2 \
        --zone=ZONE_B
    

Ora hai un gruppo di istanze in ciascuna delle due regioni, ognuna 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 dal controllo di integrità alle istanze.

Console

  1. Nella console Google Cloud , vai alla pagina Policy firewall.

    Vai a Policy firewall

  2. Fai clic su Crea regola firewall.

  3. Nel campo Nome, inserisci allow-ssl-lb-and-health.

  4. Seleziona la rete.

  5. In Target, seleziona Tag di destinazione specificati.

  6. Imposta Tag di destinazione su ssl-lb.

  7. Imposta Filtro di origine su Intervalli IPv4.

  8. Imposta Intervalli IPv4 di origine su 130.211.0.0/22 e 35.191.0.0/16.

  9. In Protocolli e porte, imposta Protocolli e porte specificati su tcp:443.

  10. 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 del certificato sia ACTIVE. Per ulteriori informazioni, consulta Stato della risorsa del certificato SSL gestito da Google.

gcloud compute ssl-certificates list

Crea una regola firewall per il controllo di integrità IPv6

Assicurati di avere una regola in entrata applicabile alle istanze sottoposte a bilanciamento del carico e che consenta il traffico dai sistemi di controllo di integrità (2600:2d00:1:b029::/64). Questo esempio utilizza il tag di destinazione allow-health-check-ipv6 per identificare le istanze VM a cui si applica. Google Cloud

Senza questa regola firewall, la regola default-deny per il traffico in entrata blocca il traffico IPv6 in entrata verso le istanze di backend.

Console

  1. Nella console Google Cloud , vai alla pagina Policy firewall.

    Vai a Criteri firewall

  2. Per consentire il traffico nella subnet IPv6, fai di nuovo clic su Crea regola firewall e inserisci le seguenti informazioni:

    • Nome: fw-allow-lb-access-ipv6
    • Rete: NETWORK
    • Priorità: 1000
    • Direzione del traffico: in entrata
    • Target: Tag di destinazione specificati
    • Nel campo Tag di destinazione, inserisci allow-health-check-ipv6.
    • Filtro di origine: intervalli IPv6
    • Intervalli IPv6 di origine: 2600:2d00:1:b029::/64,2600:2d00:1:1::/64
    • Protocolli e porte: Consenti tutto
  3. Fai clic su Crea.

gcloud

Crea la regola firewall fw-allow-lb-access-ipv6 per consentire la comunicazione con la subnet:

gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
  --network=NETWORK \
  --action=allow \
  --direction=ingress \
  --target-tags=allow-health-check-ipv6 \
  --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
  --rules=all

Configura il bilanciatore del carico

Console

Avvia la configurazione

  1. Nella console Google Cloud , vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic su Crea bilanciatore del carico.
  3. In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
  4. Per Proxy o passthrough, seleziona Bilanciatore del carico proxy e fai clic su Avanti.
  5. In Pubblico o interno, seleziona Pubblico (esterno) e fai clic su Avanti.
  6. In Deployment globale o in una regione singola, seleziona Ideale per workload globali e fai clic su Avanti.
  7. In Generazione del bilanciatore del carico, seleziona Bilanciatore del carico di rete proxy esterno globale e fai clic su Avanti.
  8. Fai clic su Configura.

Configurazione di base

Imposta Nome su my-ssl-lb.

Configurazione backend

  1. Fai clic su Configurazione backend.
  2. In Tipo di backend, seleziona Gruppi di istanze.
  3. Imposta Protocollo su SSL.
  4. Nell'elenco Criterio di selezione degli indirizzi IP, seleziona Preferisci IPv6.
  5. In Porta denominata, inserisci ssl-lb.
  6. Accetta il valore predefinito per Timeout.
  7. Lascia Tipo di backend impostato su Gruppi di istanze.
  8. Configura il primo backend:
    1. In Nuovo backend, seleziona il gruppo di istanze instance-group-a.
    2. Imposta Numeri di porta su 443.
    3. Mantieni i restanti valori predefiniti.
  9. Configura il secondo backend:
    1. Fai clic su Aggiungi backend.
    2. Seleziona il gruppo di istanze instance-group-b.
    3. Imposta Numeri di porta su 443.
    4. Fai clic su Fine.
  10. Configura il controllo di integrità:
    1. In Controllo di integrità, seleziona Crea controllo di integrità.
    2. Imposta il Nome del controllo di integrità su my-ssl-health-check.
    3. In Protocollo, seleziona SSL.
    4. Mantieni i restanti valori predefiniti.
    5. Fai clic su Salva e continua.
  11. 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

  1. Fai clic su Configurazione frontend.
    1. Aggiungi la prima regola di forwarding:
    2. Inserisci un nome di my-ssl-lb-forwarding-rule.
    3. In Protocollo, seleziona SSL.
    4. In Indirizzo IP, seleziona Crea indirizzo IP:
      1. Inserisci un nome di ssl-lb-static-ipv4.
      2. Fai clic su Prenota.
    5. Nella sezione Certificato, seleziona Crea un nuovo certificato.
    6. Inserisci un nome di my-ssl-cert.
    7. Se scegli Carica il mio certificato, completa questi passaggi:
      1. Incolla il certificato o fai clic su Carica per andare al file del certificato.
      2. Incolla la chiave privata o fai clic su Carica per andare al file della chiave privata.
    8. Se scegli Crea certificato gestito da Google, inserisci un Dominio.
      1. Per inserire altri domini, fai clic su Aggiungi dominio.
      2. Fai clic su Crea.
    9. Per aggiungere risorse di certificati oltre alla risorsa di certificato SSL principale, fai clic su Certificati aggiuntivi. Quindi, seleziona un altro certificato dal menu Certificati oppure fai clic su Crea un nuovo certificato e segui le istruzioni riportate sopra.
      1. (Facoltativo) Per creare una policy SSL:
      2. Nella sezione Policy SSL, seleziona Crea una policy.
      3. Inserisci un nome di my-ssl-policy.
      4. In Versione TLS minima, seleziona TLS 1.0.
      5. Per Profilo, seleziona Moderno. Vengono visualizzate le sezioni Funzionalità abilitate e Funzionalità disattivate.
      6. Fai clic su Salva.
    10. (Facoltativo) Attiva il protocollo proxy.
    11. Fai clic su Fine.
  2. 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.
  3. Fai clic su Fine.

Esamina e finalizza

  1. Fai clic su Esamina e finalizza.
  2. Controlla le impostazioni di configurazione del bilanciatore del carico.
  3. (Facoltativo) Fai clic su Codice equivalente per visualizzare la richiesta dell'API REST che verrà utilizzata per creare il bilanciatore del carico.
  4. Fai clic su Crea.

gcloud

  1. Creare un controllo di integrità.
       gcloud compute health-checks create ssl my-ssl-health-check --port=443
       
  2. Crea un servizio di backend.
       gcloud beta compute backend-services create my-ssl-lb \
           --load-balancing-scheme EXTERNAL_MANAGED \
           --global-health-checks \
           --protocol=SSL \
           --port-name=ssl-lb \
           --ip-address-selection-policy=PREFER_IPV6 \
           --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.

  3. Aggiungi gruppi di istanze al servizio di backend.

       gcloud compute backend-services add-backend my-ssl-lb \
           --instance-group=instance-group-a \
           --instance-group-zone=ZONE_A \
           --balancing-mode=UTILIZATION \
           --max-utilization=0.8 \
           --global
       
       gcloud compute backend-services add-backend my-ssl-lb \
           --instance-group=instance-group-b \
           --instance-group-zone=ZONE_B \
           --balancing-mode=UTILIZATION \
           --max-utilization=0.8 \
           --global
       
  4. Configura la risorsa del certificato SSL.

    Se utilizzi certificati autogestiti, devi già avere almeno un certificato SSL da caricare. In caso contrario, consulta Panoramica dei certificati SSL. Quando utilizzi più certificati SSL, devi crearli uno alla volta.

    Se utilizzi certificati SSL autogestiti e non disponi di una chiave privata e di 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 gestito da Google:

       gcloud compute ssl-certificates create www-ssl-cert \
           --domains=DOMAIN_1,DOMAIN_2
       
  5. 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 ogni certificato.

    Se vuoi attivare l'intestazione proxy, impostala su PROXY_V1 anziché su none. Puoi facoltativamente collegare un criterio SSL al proxy di destinazione. Innanzitutto, crea la norma.

       gcloud compute ssl-policies create my-ssl-policy \
           --profile=MODERN \
           --min-tls-version=1.0
       

    Poi, collega il criterio al proxy di destinazione.

       gcloud beta 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
       
  6. Prenota indirizzi IP statici globali.

    I tuoi clienti utilizzano questi indirizzi IP per accedere al servizio bilanciato 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
       
  7. Configura le regole di forwarding globali.

    Crea regole di forwarding globale associate al proxy di destinazione. Sostituisci LB_STATIC_IP e LB_STATIC_IPV6 con gli indirizzi IP che hai generato in Prenota indirizzi IP statici globali.

       gcloud beta compute forwarding-rules create my-ssl-lb-forwarding-rule \
           --load-balancing-scheme EXTERNAL_MANAGED \
           --global \
           --target-ssl-proxy=my-ssl-lb-target-proxy \
           --address=LB_STATIC_IP \
           --ports=443
       

Collegare il 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 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 certificato SSL, devi aggiungere un record A per ciascuno, tutti indirizzati all'indirizzo IP del bilanciamento 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 record.

Testa il bilanciatore del carico

Nel browser web, connettiti al tuo indirizzo IP statico utilizzando HTTPS. In questa configurazione di test, le istanze utilizzano certificati autofirmati. Pertanto, la prima volta che accedi a una pagina, vedrai 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 della regione più vicina a te. Ricarica la pagina finché non vedi l'altra istanza nella 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 tua macchina locale. Se utilizzi un certificato autofirmato sul proxy SSL, devi anche specificare -k. L'opzione curl -k consente a curl di funzionare anche se hai un certificato autofirmato o nessun certificato. Se hai un certificato normale, puoi rimuovere questo parametro. Dovresti utilizzare il parametro -k solo per testare il tuo sito. In circostanze normali, un certificato valido è un'importante misura di sicurezza 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 i passaggi descritti in Risoluzione dei 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 conservare le informazioni sulla connessione 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 originali su porta e IP client non vengono conservate.

Per conservare e inviare le informazioni di connessione originali alle tue istanze, attiva la versione 1 del protocollo PROXY. Questo protocollo invia un'intestazione aggiuntiva che contiene l'indirizzo IP di origine, l'indirizzo IP di destinazione e i numeri di porta all'istanza come parte della richiesta.

Assicurati che le istanze di backend del bilanciatore del carico di rete proxy eseguano server che supportano le intestazioni del 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 utente, puoi impostarlo anche per i controlli di integrità. Se controlli l'integrità e pubblichi i contenuti sulla stessa porta, imposta --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 client non è noto, il bilanciatore del carico genera un'intestazione del protocollo PROXY nel seguente formato:

PROXY UNKNOWN\r\n

Aggiorna l'intestazione del protocollo PROXY per il proxy di destinazione

La configurazione del bilanciatore del carico di esempio in questa pagina mostra come attivare l'intestazione del protocollo PROXY durante la creazione del bilanciatore del carico di rete proxy. Segui questi passaggi per modificare l'intestazione del protocollo PROXY per un proxy di destinazione esistente.

Console

  1. Nella console Google Cloud , vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic su Modifica per il bilanciatore del carico.
  3. Fai clic su Configurazione frontend.
  4. Modifica il valore del campo Protocollo proxy impostandolo su On.
  5. 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 a seconda delle tue esigenze.

gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \
    --proxy-header=[NONE | PROXY_V1]

Configura l'affinità sessione

Queste procedure mostrano come aggiornare un servizio di backend per il bilanciatore del carico 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 determinato 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 esterno).

Console

Per abilitare l'affinità sessione IP client:

  1. Nella console Google Cloud , vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic su Backend.

  3. Fai clic su my-ssl-lb (il nome del servizio di backend che hai creato per questo esempio) e poi su Modifica.

  4. Nella pagina Dettagli del servizio di backend, fai clic su Configurazione avanzata.

  5. In Affinità sessione, seleziona IP client dal menu.

  6. Fai clic su Aggiorna.

gcloud

Utilizza questo comando 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, invia 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 attivare lo svuotamento della connessione sui servizi di backend per garantire un'interruzione minima per gli utenti quando un'istanza che gestisce il traffico viene terminata, rimossa manualmente o rimossa da uno strumento di scalabilità automatica. Per scoprire di più sulsvuotamento della connessionei, consulta la documentazione Abilitazione del drenaggio delle connessioni.

Passaggi successivi