Configurar um balanceador de carga de rede de proxy externo global (proxy TCP) com back-ends de grupo de instâncias de VM

Os balancmoeadores de carga de rede de proxy externo global do Google Cloud permitem que você use um único endereço IP para todos os usuários em todo o mundo. Os balanceadores de carga de rede de proxy externos globais encaminham automaticamente o tráfego para as instâncias de back-end mais próximas do usuário.

Esta página contém instruções sobre como configurar um balanceador de carga de rede de proxy externo global com um proxy TCP de destino e back-ends de grupo de instâncias de VM. Antes de começar, leia a Visão geral do balanceador de carga de rede de proxy externo para informações detalhadas sobre como esses balanceadores de carga funcionam.

Visão geral da configuração

Neste exemplo, mostramos como configurar um balanceador de carga de rede de proxy externo para um serviço que existe em duas regiões: região A e região B. Para o propósito deste exemplo, o serviço é um conjunto de servidores Apache configurados para responder na porta 110. Muitos navegadores não permitem a porta 110, portanto, a seção de teste usa curl.

Neste exemplo, você configura o seguinte:

  1. Quatro instâncias distribuídas entre duas regiões.
  2. grupos de instâncias, que contêm as instâncias
  3. uma verificação de integridade para verificar a integridade da instância
  4. um serviço de back-end, que monitora as instâncias e impede que elas excedam o uso configurado
  5. o proxy TCP de destino
  6. um endereço IPv4 estático externo e uma regra de encaminhamento que envia o tráfego do usuário para o proxy
  7. um endereço IPv6 estático externo e uma regra de encaminhamento que envia o tráfego do usuário para o proxy
  8. Uma regra de firewall que permite que o tráfego do balanceador de carga e do verificador de integridade alcance as instâncias.

Depois que o balanceador de carga for configurado, você testará a configuração.

Permissões

Para seguir as instruções deste guia, você precisa ser capaz de criar instâncias e modificar uma rede em um projeto. É necessário ser um proprietário ou editor de projeto, ou ter todos os seguintes papéis do IAM do Compute Engine:

Tarefa Papel necessário
Criar componentes do balanceador de carga, sub-redes e redes Administrador de rede
Adicionar e remover regras de firewall Administrador de segurança
Criar instâncias Administrador da instância da computação

Para mais informações, consulte estes guias:

Configurar a rede e as sub-redes

Para criar o exemplo de rede e sub-rede, siga estas etapas.

Console

Para oferecer suporte a tráfego IPv4 e IPv6, siga estas etapas:

  1. No Console do Google Cloud, acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique em Criar rede VPC.

  3. Digite um Nome para a rede.

  4. Opcional: se você quiser configurar intervalos de endereços de IPv6 internos em sub-redes nesta rede, siga estas etapas:

    1. Em Intervalo de IPv6 interno de ULA da rede VPC, selecione Ativado.
    2. Em Alocar intervalo de IPv6 interno, selecione Automático ou Manualmente.

      Se você selecionar Manualmente, insira um intervalo /48 no intervalo fd20::/20. Se o intervalo estiver em uso, você precisará fornecer um intervalo diferente.

  5. Em Modo de criação da sub-rede, escolha Personalizado.

  6. Na seção Nova sub-rede, configure os seguintes campos:

    1. No campo Nome, digite um nome para a sub-rede.
    2. No campo Região, selecione uma região.
    3. Em Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
    4. No campo Intervalo de endereços IP, insira um intervalo de endereços IP. Esse é o intervalo IPv4 principal da sub-rede.

      É possível configurar um intervalo IPv4 de endereços para a sub-rede, mas não o intervalo de endereços IPv6 para sub-rede. O Google fornece um bloco CIDR IPv6 de tamanho fixo (/64).

    5. Em Tipo de acesso IPv6, selecione Externo.

  7. Clique em Concluído.

  8. Para adicionar uma sub-rede em uma região diferente, clique em Adicionar sub-rede e repita as etapas anteriores.

  9. Clique em Criar.

Para aceitar apenas ao tráfego IPv4, siga estas etapas:

  1. No Console do Google Cloud, acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique em Criar rede VPC.

  3. No campo Nome, insira um nome para a rede.

  4. Em Modo de criação da sub-rede, escolha Personalizado.

  5. Na seção Nova sub-rede, configure os seguintes campos:

    1. No campo Nome, digite um nome para a sub-rede.
    2. No campo Região, selecione uma região.
    3. Em Tipo de pilha de IP, selecione IPv4 (pilha única).
    4. No campo Intervalo de endereços IP, insira o intervalo IPv4 principal da sub-rede.
  6. Clique em Concluído.

  7. Para adicionar uma sub-rede em uma região diferente, clique em Adicionar sub-rede e repita as etapas anteriores.

  8. Clique em Criar.

gcloud

  1. Crie a rede VPC de modo personalizado:

    gcloud compute networks create NETWORK \
        [ --enable-ula-internal-ipv6 [ --internal-ipv6-range=ULA_IPV6_RANGE ]] \
        --switch-to-custom-subnet-mode
    
  2. Na rede, crie uma sub-rede para back-ends.

    Para o tráfego IPv4 e IPv6, use o seguinte comando para atualizar uma sub-rede:

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

    Para somente tráfego IPv4, use o seguinte comando:

    gcloud compute networks subnets create SUBNET \
       --network=NETWORK \
       --stack-type=IPV4_ONLY \
       --range=10.1.2.0/24 \
       --region=REGION_A
    
    gcloud compute networks subnets create SUBNET_B \
       --stack-type=IPV4_ONLY \
       --ipv6-access-type=EXTERNAL \
       --network=NETWORK \
       --region=REGION_B
    

Substitua:

  • NETWORK: um nome para a rede VPC

  • ULA_IPV6_RANGE: um prefixo /48 de dentro do intervalo fd20::/20 usado pelo Google para intervalos de sub-rede IPv6 interno. Se você não usar a flag --internal-ipv6-range, o Google selecionará um prefixo /48 para a rede.

  • SUBNET: um nome para a sub-rede.

  • REGION_A ou REGION_B: o nome da região

Configurar back-ends de grupos de instâncias

Esta seção mostra como criar grupos de instâncias simples, adicionar instâncias a elas e, em seguida, adicionar essas instâncias a um serviço de back-end com uma verificação de integridade. Um sistema de produção normalmente usaria grupos de instâncias gerenciadas com base em modelos de instâncias, mas essa configuração é mais rápida para testes iniciais.

Configurar instâncias

Para fins de teste, instale o Apache em quatro instâncias, duas em cada um dos dois grupos de instâncias. Normalmente, os balanceadores de carga de rede de proxy externos não são usados para tráfego HTTP, mas o software Apache é usado com frequência para testes.

Neste exemplo, as instâncias são criadas com a tag tcp-lb. Essa tag é usada posteriormente pela regra de firewall.

Console

Criar instâncias

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique em Criar instância.

  3. Defina o Nome como vm-a1.

  4. Defina a Região como REGION_A.

  5. Defina a Zona como ZONE_A.

  6. Clique em Opções avançadas.

  7. Clique em Rede e configure o seguinte campo:

    • Em Tags de rede, insira tcp-lb, allow-health-check-ipv6.

    Para oferecer suporte a tráfego IPv4 e IPv6, siga estas etapas:

    1. Na seção Interfaces de rede, clique em Editar e faça as seguintes alterações:
      • Rede: NETWORK
      • Sub-rede: SUBNET
      • Tipo de pilha de IP: IPv4 e IPv6 (pilha dupla)
    2. Clique em Concluir.
  8. Clique em Gerenciamento. Insira o script a seguir no campo Script de inicialização.

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-a1</h1></body></html>' | sudo tee /var/www/html/index.html
  9. Clique em Criar.

  10. Crie vm-a2 com as mesmas configurações, exceto com o seguinte script no campo Script de inicialização:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-a2</h1></body></html>' | sudo tee /var/www/html/index.html

  11. Crie vm-b1 com as mesmas configurações, exceto com Região definida como REGION_B e Zona definida como ZONE_B. Digite o script a seguir no campo Script de inicialização:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-b1</h1></body></html>' | sudo tee /var/www/html/index.html

  12. Crie vm-b2 com as mesmas configurações, exceto com Região definida como REGION_B e Zona definida como ZONE_B. Digite o script a seguir no campo Script de inicialização:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-b2</h1></body></html>' | sudo tee /var/www/html/index.html

gcloud

  1. Crie vm-a1 na zona ZONE_A.

    gcloud compute instances create vm-a1 \
       --image-family debian-12 \
       --image-project debian-cloud \
       --tags tcp-lb \
       --zone ZONE_A \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>vm-a1</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    
  2. Crie vm-a2 na zona ZONE_A

    gcloud compute instances create vm-a2 \
       --image-family debian-12 \
       --image-project debian-cloud \
       --tags tcp-lb \
       --zone ZONE_A \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>vm-a2</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    
  3. Crie vm-b1 na zona ZONE_B

    gcloud compute instances create vm-b1 \
       --image-family debian-12 \
       --image-project debian-cloud \
       --tags tcp-lb \
       --zone ZONE_B \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>vm-b1</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    
  4. Crie vm-b2 na zona ZONE_B

    gcloud compute instances create vm-b2 \
       --image-family debian-12 \
       --image-project debian-cloud \
       --tags tcp-lb \
       --zone ZONE_B \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>vm-b2</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    

Criar grupos de instâncias

Nesta seção, você criará um grupo de instâncias em cada zona e adicionar as instâncias.

Console

  1. No Console do Google Cloud, acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Clique em Criar grupo de instâncias.

  3. Clique em Novo grupo de instâncias não gerenciadas.

  4. Defina o Nome como instance-group-a.

  5. Defina a Zona como ZONE_A.

  6. Em Mapeamento de portas, clique em Adicionar porta. Um balanceador de carga envia tráfego a um grupo de instâncias por uma porta nomeada. Crie uma porta nomeada para mapear o tráfego de entrada em um número de porta específico.

    1. Defina o Nome da porta como tcp110.
    2. Defina Números de portas como 110.
  7. Em Instâncias de VM, selecione vm-a1 e vm-a2.

  8. Não altere as outras configurações.

  9. Clique em Criar.

  10. Repita as etapas, mas defina as seguintes configurações:

    • Name: instance-group-b
    • Região: REGION_B
    • Zona: ZONE_B
    • Nome da porta: tcp110
    • Números de portas: 110
    • Instâncias: vm-b1 e vm-b2.

gcloud

  1. Crie o grupo de instâncias instance-group-a.

    gcloud compute instance-groups unmanaged create instance-group-a \
       --zone ZONE_A
    
  2. Crie uma porta nomeada para o grupo de instâncias.

    gcloud compute instance-groups set-named-ports instance-group-a \
       --named-ports tcp110:110 \
       --zone ZONE_A
    
  3. Adicione 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. Crie o grupo de instâncias us-ig2.

    gcloud compute instance-groups unmanaged create instance-group-b \
       --zone ZONE_B
    
  5. Crie uma porta nomeada para o grupo de instâncias.

    gcloud compute instance-groups set-named-ports instance-group-b \
       --named-ports tcp110:110 \
       --zone ZONE_B
    
  6. Adicionar 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
    

Agora você tem um grupo de instâncias por região. Cada grupo de instâncias tem duas instâncias de VM.

Criar uma regra de firewall para o balanceador de carga de rede do proxy externo

Configure o firewall para permitir o tráfego proveniente do balanceador de carga e do verificador de integridade para as instâncias. Neste caso, vamos abrir a porta TCP 110. A verificação de integridade usará a mesma porta. Como o tráfego entre o balanceador de carga e suas instâncias usa o IPv4, somente os intervalos IPv4 precisam ser abertos.

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acesse as políticas de firewall

  2. Clique em Criar regra de firewall.

  3. No campo Nome, use allow-tcp-lb-and-health.

  4. Selecione uma rede.

  5. Em Destinos, selecione Tags de destino especificadas.

  6. Defina Tags de destino para tcp-lb.

  7. Defina Filtro de origem como Intervalos IPv4.

  8. Defina Intervalos IPv4 de origem como 130.211.0.0/22,35.191.0.0/16.

  9. Em Portas e protocolos, defina Protocolos e portas especificados como tcp:110.

  10. Clique em Criar.

gcloud

gcloud compute firewall-rules create allow-tcp-lb-and-health \
   --source-ranges 130.211.0.0/22,35.191.0.0/16 \
   --target-tags tcp-lb \
   --allow tcp:110

Criar uma regra de firewall de verificação de integridade IPv6

Verifique se você tem uma regra de entrada que seja aplicável às instâncias com balanceamento de carga e que permita o tráfego dos sistemas de verificação de integridade do Google Cloud (2600:2d00:1:b029::/64). Neste exemplo, usamos a tag de destino allow-health-check-ipv6 para identificar as instâncias de VM às quais ele se aplica.

Sem essa regra de firewall, a regra padrão de negação de entrada bloqueia a entrada tráfego IPv6 para as instâncias de back-end.

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acesse as políticas de firewall

  2. Para permitir o tráfego de sub-rede IPv6, clique novamente em Criar regra de firewall e insira as seguintes informações:

    • Nome: fw-allow-lb-access-ipv6
    • Selecione a rede.
    • Prioridade: 1000
    • Direção do tráfego: entrada
    • Destinos: tags de destino especificadas
    • Tags de meta: allow-health-check-ipv6
    • Filtro de origem: intervalos IPv6
    • Intervalos IPv6 de origem: 2600:2d00:1:b029::/64,2600:2d00:1:1::/64
    • Protocolos e portas: permitir todos
  3. Clique em Criar.

gcloud

Crie a regra de firewall fw-allow-lb-access-ipv6 para permitir a comunicação a partir da sub-rede:

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

Configurar o balanceador de carga

Console

Iniciar a configuração

  1. No console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique em Criar balanceador de carga.
  3. Em Tipo de balanceador de carga, selecione Balanceador de carga de rede (TCP/UDP/SSL) e clique em Próxima.
  4. Em Proxy ou passagem, selecione Balanceador de carga de proxy e clique em Próxima.
  5. Em Voltado ao público ou interno, selecione Voltado ao público (externo) e clique em Próxima.
  6. Em Implantação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em Próxima.
  7. Em Geração do balanceador de carga, selecione Balanceador de carga de rede de proxy externo global e clique em Próxima.
  8. Clique em Configurar.

Configuração básica

Defina o Nome como my-tcp-lb.

Configuração de back-end

  1. Clique em Configuração de back-end.
  2. Em Tipo de back-end, selecione Grupos de instâncias.
  3. Em Protocolo, selecione TCP.
  4. Na lista Política de seleção de endereço IP, selecione Preferir IPv6.
  5. Configure o primeiro back-end:
    1. Em Novo back-end, selecione o grupo de instâncias instance-group-a.
    2. Retenha os valores padrão restantes.
  6. Configure o segundo back-end:

      Para aceitar o tráfego IPv4 e IPv6:

      • Em Tipo de pilha de IP, selecione IPv4 and IPv6 (dual-stack).
    1. Clique em Adicionar back-end.
    2. Selecione o grupo de instâncias instance-group-b.
    3. Em Números de portas, exclua 80 e adicione 110.
  7. Configure a verificação de integridade:
    1. Em Verificação de integridade, selecione Criar verificação de integridade.
    2. Defina o Nome da verificação de integridade como my-tcp-health-check.
    3. Em Protocolo, selecione TCP.
    4. Defina a Porta como 110.
    5. Retenha os valores padrão restantes.
    6. Clique em Salvar e continuar.
  8. No Console do Google Cloud, verifique se há uma marca de seleção ao lado de Configuração do back-end. Se não houver, verifique se você concluiu todas as etapas.

Configuração de front-end

  1. Clique em Configuração de front-end.
  2. Adicione a primeira regra de encaminhamento:
    1. Informe um Nome de my-tcp-lb-forwarding-rule.
    2. Em Protocolo, selecione TCP.
    3. Em Endereço IP, selecione Criar endereço IP:
      1. Informe um Nome de tcp-lb-static-ip.
      2. Clique em Reservar.
    4. Defina a Porta como 110.
    5. Neste exemplo, não ative o Protocolo de PROXY, porque ele não funciona com o software servidor HTTP Apache. Para mais informações, consulte Protocolo de proxy.
    6. Clique em Concluído.
  3. No Console do Google Cloud, verifique se há uma marca de seleção ao lado de Configuração do front-end. Se não houver, verifique se você concluiu todas as etapas anteriores.

Revisar e finalizar

  1. Clique em Analisar e finalizar.
  2. Revise suas configurações do balanceador de carga.
  3. Opcional: clique em Código equivalente para conferir a solicitação de API REST que será usada para criar o balanceador de carga.
  4. Clique em Criar.

gcloud

  1. Crie uma verificação de integridade.
        gcloud compute health-checks create tcp my-tcp-health-check --port 110
        
  2. Crie um serviço de back-end.
        gcloud beta compute backend-services create my-tcp-lb \
            --load-balancing-scheme EXTERNAL_MANAGED \
            --global-health-checks \
            --global \
            --protocol TCP \
            --ip-address-selection-policy=PREFER_IPV6 \
            --health-checks my-tcp-health-check \
            --timeout 5m \
            --port-name tcp110
        

    Como alternativa, é possível configurar a comunicação criptografada do balanceador de carga para as instâncias com --protocol SSL.

  3. Adicionar grupos de instâncias ao serviço de back-end

        gcloud beta compute backend-services add-backend my-tcp-lb \
            --global \
            --instance-group instance-group-a \
            --instance-group-zone ZONE_A \
            --balancing-mode UTILIZATION \
            --max-utilization 0.8
        
        gcloud beta compute backend-services add-backend my-tcp-lb \
            --global \
            --instance-group instance-group-b \
            --instance-group-zone ZONE_B \
            --balancing-mode UTILIZATION \
            --max-utilization 0.8
        
  4. Configurar um proxy TCP de destino Se quiser ativar o cabeçalho proxy, defina-o como PROXY_V1 em vez de NONE.
        gcloud beta compute target-tcp-proxies create my-tcp-lb-target-proxy \
            --backend-service my-tcp-lb \
            --proxy-header NONE
        
  5. Reservar endereços IPv4 e IPv6 globais e estáticos

    Seus clientes podem usar esses endereços IP para acessar seu serviço de balanceamento de carga.

        gcloud compute addresses create tcp-lb-static-ipv4 \
            --ip-version=IPV4 \
            --global
        
        gcloud compute addresses create tcp-lb-static-ipv6 \
            --ip-version=IPV6 \
            --global
        
  6. Configurar regras de encaminhamento globais para os dois endereços.
        gcloud beta compute forwarding-rules create my-tcp-lb-ipv4-forwarding-rule \
            --load-balancing-scheme EXTERNAL_MANAGED \
            --global \
            --target-tcp-proxy my-tcp-lb-target-proxy \
            --address tcp-lb-static-ipv4 \
            --ports 110
        

Testar o balanceador de carga

  1. Anote o endereço IP do balanceador de carga.

    Para encontrar o endereço IPv4, execute o seguinte comando:

    gcloud compute addresses describe tcp-lb-static-ipv4
    

    Para descobrir o endereço IPv6, execute o seguinte comando:

    gcloud compute addresses describe tcp-lb-static-ipv6
    
  2. Envie tráfego para o balanceador de carga executando o comando a seguir. Substitua LB_IP_ADDRESS pelo endereço IPv4 ou IPv6 do seu balanceador de carga.

    curl -m1 LB_IP_ADDRESS:110
    

    Por exemplo, se o endereço IPv6 atribuído for [2001:db8:1:1:1:1:1:1/96]:110, o comando terá esta aparência:

    curl -m1 http://[2001:db8:1:1:1:1:1:1]:110
    

Se você não conseguir acessar o balanceador de carga, tente as etapas descritas em Como solucionar problemas de configuração.

Outras opções de configuração

Nesta seção, o exemplo é detalhado para fornecer outras opções de configuração. Todas as tarefas são opcionais. É possível realizá-las em qualquer ordem.

Protocolo PROXY para manter informações de conexão do cliente

O balanceador de carga de rede de proxy encerra as conexões TCP do cliente e cria novas conexões com as instâncias. Por padrão, as informações de IP e porta do cliente original não são preservadas.

Para preservar e enviar as informações de conexão originais para suas instâncias, ative a versão 1 do protocolo PROXY. Esse protocolo envia à instância como parte da solicitação um cabeçalho extra que contém os endereços IP de origem e de destino e os números de porta.

Verifique se as instâncias de back-end do balanceador de carga de rede do proxy estão executando servidores compatíveis com cabeçalhos do protocolo PROXY. Se os servidores não estiverem configurados para aceitar cabeçalhos de protocolo PROXY, as instâncias de back-end retornarão respostas vazias.

Se você definir o protocolo PROXY para o tráfego de usuários, também poderá configurá-lo para as verificações de integridade. Se você estiver verificando a integridade e a exibição de conteúdo na mesma porta, defina o --proxy-header da verificação de integridade para corresponder à configuração do balanceador de carga.

Normalmente, o cabeçalho do protocolo PROXY é uma linha de texto legível no formato a seguir:

PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n

O exemplo a seguir exibe um protocolo PROXY:

PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n

No exemplo anterior, o IP do cliente é 192.0.2.1, o IP do balanceamento de carga é 198.51.100.1, a porta do cliente é 15221 e a porta de destino é 110.

Quando o endereço IP do cliente não é conhecido, o balanceador de carga gera um cabeçalho do protocolo PROXY no formato a seguir:

PROXY UNKNOWN\r\n

Atualizar o cabeçalho do protocolo PROXY para o proxy de destino

O exemplo de configuração do balanceador de carga dessa página mostra como ativar o cabeçalho do protocolo PROXY ao criar o balanceador de carga de rede de proxy. Siga estas etapas para alterar o cabeçalho do protocolo PROXY para um proxy de destino.

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique em Editar no seu balanceador de carga.
  3. Clique em Configuração de front-end.
  4. Altere o valor do campo Protocolo de proxy para Ativado.
  5. Clique em Update to save your changes.

gcloud

No comando a seguir, edite o campo --proxy-header e defina-o como NONE ou PROXY_V1, dependendo do seu requisito.

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

Configurar a afinidade da sessão

A configuração de exemplo cria um serviço de back-end sem afinidade da sessão.

Nestes procedimentos, você verá um exemplo de como atualizar um serviço de back-end para um balanceador de carga. Com isso, o serviço de back-end usa a afinidade de IP do cliente ou a afinidade de cookie gerado.

Quando a afinidade de IP do cliente está ativada, o balanceador de carga direciona as solicitações de um determinado cliente para a mesma VM de back-end. Isso é feito com base em um hash criado a partir do endereço IP do cliente e do endereço IP do balanceador de carga (o endereço IP externo de uma regra de encaminhamento externo).

Console

Para ativar a afinidade da sessão de IP do cliente:

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique em Back-ends.

  3. Clique em my-tcp-lb, ou seja, o nome do serviço de back-end que você criou para este exemplo. Depois, clique em Editar.

  4. Na página Detalhes do serviço de back-end, clique em Configuração avançada.

  5. Em Afinidade da sessão, selecione IP do cliente no menu.

  6. Clique em Atualizar.

gcloud

Use o seguinte comando da CLI do Google Cloud para atualizar o serviço de back-end my-tcp-lb, especificando a afinidade da sessão de IP do cliente:

gcloud compute backend-services update my-tcp-lb \
    --global \
    --session-affinity=CLIENT_IP

API

Para definir a afinidade da sessão de IP do cliente, faça uma solicitação PATCH para o método backendServices/patch.

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/us-west1/backendServices/my-tcp-lb
{
  "sessionAffinity": "CLIENT_IP"
}

Ativar a diminuição da conexão

Ative a diminuição da conexão em serviços de back-end para garantir interrupção mínima aos usuários quando uma instância que está veiculando tráfego é encerrada, removida manualmente ou removida por um autoescalador. Para mais informações, leia sobre Como ativar a diminuição da conexão.

A seguir