Todos os produtos
Search
Central de documentação

Server Load Balancer:ALB FAQ

Última atualização: Aug 17, 2026

Este tópico responde às perguntas frequentes (FAQs) sobre o Application Load Balancer (ALB).

Instâncias e especificações

Especificações de instância do ALB

O ALB não exige a seleção de uma especificação de instância. Após você atualizar uma instância do ALB, o ALB utiliza o recurso de dimensionamento automático de VIP para atingir 1 milhão de QPS em uma única instância. Para obter detalhes sobre o desempenho da instância, consulte Métricas da instância.

Nota

Para instâncias do ALB não atualizadas, os limites de desempenho variam conforme o modo de IP (IP estático ou IP dinâmico). Essas instâncias não possuem o recurso de dimensionamento automático de VIP e precisam dimensionar dinamicamente os endereços IP para alcançar 1 milhão de QPS por instância.

Conversão entre instâncias IPv4 e dual-stack

Não.

É possível apenas criar uma nova instância IPv4 ou uma nova instância dual-stack.

Rede e EIPs

Desativar pings para o VIP do ALB

  • Para instâncias do ALB atualizadas, gerencie o tráfego de acesso por meio de um grupo de segurança. Configure uma regra de entrada no grupo de segurança da instância para negar solicitações ICMP.

  • Para instâncias do ALB não atualizadas, adicione os EIPs associados à instância ao Cloud Firewall e configure uma política de entrada para negar solicitações ICMP.

Aumentar a largura de banda pública do ALB

Se não estiver adicionada a uma instância de Shared Bandwidth, uma única instância do ALB implantada em duas zonas de disponibilidade tem uma largura de banda pública de pico padrão de 400 Mbps.

Para obter mais largura de banda, adquira uma instância de Shared Bandwidth e adicione os EIPs associados à instância do ALB a ela.

Usar um Data Transfer Plan com o ALB

  • Se uma instância do ALB fornecer services públicos por meio de um Elastic IP Address (EIP), use um Data Transfer Plan para compensar os custos de transferência de dados públicos gerados pelo EIP.

  • Caso uma instância do ALB forneça services públicos por meio de um Anycast Elastic IP Address (Anycast EIP), não é possível usar um Data Transfer Plan para compensar os custos de transferência de dados públicos gerados pelo Anycast EIP.

Tipos de EIP suportados

Apenas EIPs com pagamento conforme o uso podem ser associados a uma instância do ALB. A tabela a seguir descreve os tipos de EIPs compatíveis com uma instância do ALB.

Billing method

Internet billing method

Line type

Protection

pay-as-you-go

Pay-by-data-transfer

BGP (Multi-ISP)

Standard

Pay-by-data-transfer

BGP (Multi-ISP) Pro

Standard

Pay-by-data-transfer

BGP (Multi-ISP)

Anti-DDoS (Enhanced)

Observe os pontos abaixo ao associar um EIP a uma instância do ALB:

  • Os EIPs associados a todas as zonas de disponibilidade de uma instância do ALB devem ser do mesmo tipo.

  • Antes de associar um EIP, verifique se ele já não foi adicionado a uma instância de Shared Bandwidth. Para utilizar o Shared Bandwidth, primeiro associe o EIP à instância do ALB e, em seguida, adicione-o a uma instância de Shared Bandwidth no console do Load Balancer. Ao adicionar um EIP a uma instância de Shared Bandwidth, garanta que o tipo de linha do EIP corresponda ao da instância de Shared Bandwidth. Tanto instâncias de Shared Bandwidth por assinatura quanto por pagamento conforme o uso são suportadas. Para mais informações, consulte Ajustar a largura de banda de pico de uma instância voltada para o público.

  • Não é possível associar EIPs por assinatura ou EIPs por pagamento conforme o uso (pagamento por largura de banda).

  • Ao atribuir um EIP a uma instância do ALB, selecione Purchase EIP ou Automatically Assign Public IP Address cria um EIP por pagamento conforme o uso (pagamento por transferência de dados) que utiliza o tipo de linha BGP (Multi-ISP) e oferece proteção padrão.

EIPs para instâncias privadas do ALB

Sim.

Caso precise associar um Elastic IP Address (EIP) a um ALB privado, converta o ALB privado em um ALB público alterando o tipo de rede da instância. Para mais informações, consulte Alterar o tipo de rede de uma instância do ALB.

A alteração do tipo de rede de privado para público associa um EIP à instância e gera cobranças pela transferência de dados resultante na internet. Para mais informações, consulte Cobrança de EIP.

Substituir um EIP por um EIP BGP (Multi-ISP) Pro

Substitua o EIP seguindo o procedimento em alterar o tipo de rede da instância do ALB:

  1. Altere o tipo de rede da instância do ALB de público para privado para desassociar o EIP.

  2. Altere o tipo de rede da instância do ALB de volta de privado para público. Durante esse processo, selecione dois EIPs BGP (Multi-ISP) Pro que você já criou.

Distribuição desigual de tráfego entre EIPs

Esse problema pode ter as seguintes causas:

  • O nome de domínio do service está resolvido incorretamente para um único EIP associado à instância, em vez do nome DNS da instância do ALB.

  • Um proxy de camada 7, como Web Application Firewall (WAF) ou Anti-DDoS, está implantado à frente da instância do ALB. O algoritmo back-to-origin do proxy, como hash de IP, impede que o tráfego seja distribuído uniformemente entre os EIPs.

  • Alguns clientes armazenam em cache os registros A da resolução DNS, fazendo com que um grande número de solicitações seja enviado consistentemente para o mesmo EIP.

Remoção de DNS para o ALB

Por padrão, instâncias do ALB atualizadas suportam operações de remoção e recuperação de DNS.

Nota

Para instâncias do ALB não atualizadas, apenas aquelas no modo de IP estático suportam remoção e recuperação de DNS. Instâncias no modo de IP dinâmico não suportam essas operações.

Após a conclusão da remoção do DNS, as verificações de integridade do VIP nessa zona de disponibilidade param. O VIP ou EIP (incluindo endereços IPv4 e IPv6) nessa zona de disponibilidade também é removido da resolução do nome de domínio do ALB. Não é possível remover apenas o endereço VIP IPv4 ou IPv6.

Tráfego público elevado em instâncias ecs de backend

O tráfego encaminhado por uma instância do ALB para instâncias de backend do Elastic Compute Service (ecs) trafega pela rede interna da Virtual Private Cloud (vpc) e não consome a largura de banda pública das instâncias ecs. Se o tráfego público das suas instâncias ecs permanecer alto, geralmente isso ocorre por um dos seguintes motivos:

  • O tráfego de entrada contorna a instância do ALB: o nome de domínio ainda resolve para um IP público do ecs, ou os clientes acessam a instância ecs diretamente pelo seu IP público. Consequentemente, a instância do ALB não encaminha o tráfego.

  • Solicitações de saída das instâncias ecs: aplicações em execução nas instâncias ecs iniciam solicitações externas, como atualizações de software, uploads de logs ou chamadas de API externas, que geram tráfego público de saída.

Etapas de solução de problemas:

  1. Verifique se o nome de domínio do seu service resolve para o endereço do ALB, e não para um endereço IP público do ecs.

  2. Verifique as regras do grupo de segurança de entrada das instâncias ecs para garantir que as portas de service não estejam expostas publicamente.

  3. Nas instâncias ecs, use iftop ou nethogs para identificar os processos e endereços de destino que estão consumindo largura de banda pública.

Qual endereço IP deve ser adicionado à lista de permissões de IP de uma plataforma de terceiros ao usar o ALB?

Ao usar uma instância do ALB voltada para a internet, plataformas de terceiros (como WeChat Merchant Platform ou callbacks de pagamento) devem vincular o Elastic IP Address (EIP) da instância do ALB, e não o endereço IP de uma instância de backend do Elastic Compute Service (ecs).

Uma instância do ALB voltada para a internet fornece services por meio de seu EIP. Todo o tráfego externo, incluindo solicitações de callback de plataformas de terceiros, entra pelo EIP da instância do ALB e é então encaminhado pelo ALB para os servidores de backend. As instâncias ecs de backend usam endereços IP privados dentro da Virtual Private Cloud (vpc), que não são expostos a chamadores externos. Mesmo que haja várias instâncias ecs de backend, você só precisa vincular o EIP da instância do ALB na plataforma de terceiros.

O caminho do tráfego de uma instância do ALB voltada para a internet é o seguinte: solicitação do cliente > EIP do ALB (ponto de entrada público) > encaminhamento interno pelo ALB > endereço IP privado da instância ecs de backend. Depois que uma solicitação de callback de uma plataforma de terceiros entra pela internet, ela atinge apenas o EIP da instância do ALB, e o ALB a encaminha para as instâncias ecs de backend. Durante todo o processo, a plataforma de terceiros se comunica apenas com o EIP da instância do ALB, e os endereços IP privados das instâncias ecs de backend permanecem invisíveis para chamadores externos.

Listeners e encaminhamento

O ALB suporta espelhamento de tráfego?

Sim. Para mais informações, consulte Usar o Espelhamento de Tráfego do ALB para Testes de Estresse.

Falha ao atingir o limite de QPS do listener

  • Como funciona: o sistema de balanceamento de carga usa um cluster de servidores para atender cada instância do ALB. Esse cluster distribui uniformemente as solicitações de entrada entre seus servidores para encaminhamento. Portanto, o limite de QPS definido em uma regra de encaminhamento também é distribuído entre esses servidores do sistema.

    O limite de QPS para um único servidor do sistema é calculado pela seguinte fórmula: QPS limit per system server = Total QPS set / (N-1). N é o número de servidores do sistema no grupo de encaminhamento. Por exemplo, se você definir o limite de QPS para uma regra de encaminhamento como 1.000 QPS no console e houver 8 servidores do sistema, o QPS máximo para um único servidor do sistema será 1000/(8-1) = 142 QPS.

  • Causa: com um número pequeno de conexões persistentes, alguns servidores do sistema no grupo de encaminhamento podem não receber nenhuma conexão. Isso pode impedir que a instância do ALB atinja o limite de QPS.

  • Recomendação: defina um limite de QPS razoável para suas regras de encaminhamento com base nos requisitos do seu negócio. Isso garante que seus services permaneçam disponíveis e não sejam limitados inesperadamente. Para mais informações sobre como definir um limite de QPS em uma regra de encaminhamento de listener, consulte Adicionar uma regra de encaminhamento.

Limites de tamanho de solicitação

Para solicitações encaminhadas pelo ALB, o comprimento máximo da URI é de 32 KB e o comprimento máximo do cabeçalho é de 32 KB. Esses limites não podem ser ajustados. Para cabeçalhos personalizados nos logs de acesso, o comprimento máximo padrão é de 1 KB, que pode ser aumentado para 4 KB. Para solicitar um aumento, entre em contato com seu gerente de conta.

  • Se o tamanho de uma solicitação do cliente exceder o limite, o ALB poderá retornar um código de status http 400 ou 414. Para mais informações, consulte Códigos de erro relacionados ao ALB.

  • Para transmitir uma grande quantidade de dados, use uma solicitação POST. O tamanho máximo para o corpo de uma solicitação POST é de 50 GB.

Escopo do tempo de processamento do ALB

Sim, o tempo de processamento do ALB inclui o tempo para receber dados do cliente e enviar dados ao cliente.

  • Tempo para receber dados do cliente: este é o read_request_time, o tempo total que o balanceador de carga leva para ler uma solicitação do cliente. Inclui o tempo para ler o cabeçalho da solicitação http (read_header_time) e o corpo da solicitação (read_body_time).

  • Tempo para enviar dados de resposta: inclui o tempo para retornar os dados de resposta ao cliente.

Máximo de solicitações por conexão persistente

Uma única conexão persistente suporta no máximo 100 solicitações consecutivas. Se esse limite for excedido, a conexão será fechada automaticamente.

Esse limite aumenta para 1.000 se você usar um listener https e ativar o http/2.

Limite de comprimento do Client Hello para listeners QUIC

Ao usar um listener QUIC, o ALB impõe um comprimento mínimo para o Client Hello do cliente. O pacote deve ter pelo menos 1.024 bytes. Caso contrário, o ALB retorna um erro "client hello too small" e fecha a conexão. Para passar nessa verificação, preencha o pacote Client Hello com caracteres nulos para atender ao requisito de 1.024 bytes.

Considerações para ALB Ingress

Na maioria dos casos, não modifique manualmente as instâncias do ALB criadas pelo ALB Ingress no console. Use o AlbConfig como source da verdade para as configurações do ALB. Para mais informações sobre o ALB Ingress, consulte Visão geral dos ALB Ingresses e Usar um ALB Ingress.

Se você fizer alterações manuais no console, elas não serão refletidas no recurso AlbConfig. A próxima sincronização do AlbConfig sobrescreverá essas alterações manuais. Isso pode causar problemas, como logs de acesso desativados ou regras de encaminhamento excluídas.

Quando a persistência de sessão está desativada, várias solicitações do mesmo cliente são encaminhadas para o mesmo servidor de backend?

Podem ser, mas o ALB não garante isso. Quando a persistência de sessão está desativada, o ALB não registra o mapeamento entre um cliente e um servidor de backend. Em vez disso, trata cada solicitação como independente e seleciona um servidor de backend com base no algoritmo de agendamento configurado para o grupo de servidores. Para garantir que as solicitações do mesmo cliente sejam sempre encaminhadas para o mesmo servidor de backend, ative a persistência de sessão para o grupo de servidores.

Perguntas frequentes sobre cross-origin no ALB

Falha nas configurações cross-origin com erro de preflight

Se Allowed Request Headers estiver definido para nomes de cabeçalho específicos em vez de "", tente defini-lo como "" para teste. Se o problema for resolvido, verifique se o Access-Control-Request-Headers na solicitação preflight contém um nome de cabeçalho que não está incluído nas suas configurações. Isso pode causar falha na solicitação preflight.

Solicitações preflight e reais correspondem a regras diferentes

O ALB suporta vários métodos de correspondência para regras de encaminhamento. Em um cenário cross-origin, os cabeçalhos e o método de uma solicitação preflight podem diferir da solicitação real. Para cenários cross-origin, configure regras de encaminhamento com base em nomes de domínio. Isso garante que tanto a solicitação preflight quanto a solicitação real sejam roteadas para a mesma regra de encaminhamento, que possui as configurações cross-origin necessárias, e evita problemas inesperados.

Geração do cabeçalho Access-Control-Allow-Headers

  1. Solicitação preflight

    Um navegador envia uma solicitação preflight usando o método OPTIONS quando uma solicitação cross-origin atende às seguintes condições:

    • O método da solicitação é OPTIONS.

    • A solicitação inclui o cabeçalho Access-Control-Request-Method.

    Nesse caso, o ALB retorna o cabeçalho de resposta Access-Control-Allow-Headers com base na regra de encaminhamento cross-origin configurada no console. O valor desse cabeçalho de resposta é uma lista dos campos de cabeçalho de solicitação permitidos especificados na regra. Exemplo:

    DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization
  2. Solicitação cross-origin padrão

    Para solicitações não-OPTIONS ou solicitações simples que não exigem verificação preflight, o ALB não retorna o cabeçalho de resposta Access-Control-Allow-Headers.

Referenciar valores originais de cabeçalho

Para Key, insira o nome do cabeçalho que deseja gravar. Para Value, selecione o método de referência e insira o nome do cabeçalho original cujo valor deseja referenciar. No exemplo a seguir, um novo cabeçalho chamado abc-abc é gravado, referenciando o valor do cabeçalho original abc. A regra de encaminhamento extrai o valor do cabeçalho original abc e o atribui ao novo cabeçalho abc-abc.

A condição para esta regra de encaminhamento é uma correspondência exata de caminho para /. Além da ação de gravação de cabeçalho, a regra também está configurada para Forward to um grupo de servidores específico com peso 100.

Cliente

Quando o cliente envia uma solicitação usando curl, ele inclui o cabeçalho de solicitação personalizado abc:123456 com o parâmetro -H. O servidor retorna 200 OK. O código a seguir mostra um comando de exemplo e sua saída:

curl http://xxx.xxx.174 -v -k -H abc:123456
*   Trying xxx.xxx.174:80...
* Connected to xxx.xxx.174 (xxx.xxx.174) port 80
> GET / HTTP/1.1
> Host: xxx.xxx 174
> User-Agent: curl/8.4.0
> Accept: */*
> abc:123456
>
< HTTP/1.1 200 OK
< Date: Sat, 13 Sep 2025 16:18:38 GMT
< Content-Type: text/html
< Content-Length: 4833
< Connection: keep-alive
< Vary: Accept-Encoding
< Set-Cookie: acw_tc=0a2a24fb17577803180911860e42646551283f5ec94793498a70af97834171;path=/;HttpOnly;Max-Age=1800
< Last-Modified: Fri, 16 May 2014 15:12:48 GMT
< ETag: "53762af0-12e1"
< Accept-Ranges: bytes

Servidor

GET / HTTP/1.1
RemoteIp: xxx.xxx.xxx.103
Host: xxx.xxx.xxx.174
X-Forwarded-For: xxx.xxx.xxx.103
User-Agent: curl/8.4.0
Accept: */*
abc: 123456
X-Sinfo: on
abc-abc: 123456
HTTP/1.1 200 OK
Server: nginx/1.20.1
Date: Sat, 13 Sep 2025 16:18:38 GMT
Content-Type: text/html
Content-Length: 4833

Prevenir falsificação de **X-Forwarded-For****

  • Use um campo de cabeçalho específico dos services upstream para registrar o IP real do cliente:

    Por exemplo, em uma arquitetura cliente > CDN > WAF > balanceador de carga > ecs, o CDN adiciona o campo Ali-Cdn-Real-Ip ao cabeçalho http. No WAF, configure a detecção de IP do cliente para usar o campo de cabeçalho Ali-Cdn-Real-Ip. No servidor NGINX de backend, defina a variável de log para o IP real do cliente como $http_Ali_Cdn_Real_Ip.

  • Mude para um listener de camada 4 (NLB ou CLB). O servidor de backend poderá então obter automaticamente o IP real do cliente. Para mais informações, consulte Obter o IP real do cliente em um servidor de backend usando um listener de camada 4 do CLB.

Versão http para servidores de backend

  • Para solicitações de cliente usando http/1,1 ou http/2,0, o listener de camada 7 usa http/1,1 para acessar os servidores de backend.

  • Para solicitações de cliente usando uma versão http diferente de http/1,1 ou http/2,0, o listener de camada 7 usa http/1,0 para acessar os servidores de backend.

Cabeçalhos de resposta removidos pelo ALB

Para ativar a aderência de sessão, o ALB remove os parâmetros Date, Server, X-Pad e X-Accel-Redirect do cabeçalho de resposta do servidor de backend.

Solução alternativa: use cabeçalhos personalizados com um prefixo para evitar que o ALB os processe. Por exemplo, use xl-server em vez de Server e xl-date em vez de Date. Alternativamente, configure uma regra de encaminhamento para gravar as informações em um novo cabeçalho.

ALB e conexões vazias

Não. Depois que um cliente conclui um handshake TCP ou tls/ssl com o ALB, o ALB se conectará a um servidor de backend somente ao receber uma solicitação http encaminhável. Isso evita que conexões ociosas consumam recursos de backend.

Certificados e https

Autenticação mútua de CA

Instâncias do ALB Basic Edition não suportam autenticação mútua de CA. Instâncias do ALB Standard Edition e WAF-enabled Edition suportam autenticação mútua de CA quando você adiciona um listener https. Se precisar usar o recurso de autenticação mútua de CA para uma instância do ALB Basic Edition, atualize a edição da instância.

Para autenticação mútua de CA, use um certificado de CA da Alibaba Cloud ou de um provedor terceirizado.

  • Se usar um certificado de CA da Alibaba Cloud, selecione ou adquira um certificado de CA privada.

  • Para certificados de CA de terceiros, selecione um certificado existente ou faça upload de um novo. Para fazer upload de um certificado de CA, clique em Upload Self-signed CA Certificate na lista suspensa CA Certificate. Na página Certificate Application Repository, crie um repositório com a fonte de dados definida como Uploaded CA Certificates. Em seguida, use o repositório para fazer upload de uma CA raiz autoassinada ou de um certificado de CA raiz intermediária autoassinado.

Regras para certificados wildcard

As seguintes regras se aplicam ao usar um certificado wildcard para um listener https.

  • O ALB reconhece apenas certificados wildcard que contêm um único caractere curinga *, e o caractere curinga * deve estar na posição mais à esquerda. Por exemplo, o ALB reconhece *.example.com e *test.example.com, mas não reconhece test*.example.com.

  • Regras de correspondência de nome de domínio wildcard:

    • Nível do wildcard: um nome de domínio wildcard corresponde apenas a subdomínios no mesmo nível. Por exemplo, *.example.com pode corresponder a test.example.com, mas não a test.test.example.com, pois este último está em um nível de subdomínio diferente.

    • Suporte a IDNA:

      • Se o caractere curinga for o único caractere no rótulo mais à esquerda, um rótulo IDNA poderá corresponder ao wildcard. Por exemplo, xn--fsqu00a.example.com pode corresponder a *.example.com.

      • Se o caractere curinga fizer parte de um rótulo com outros caracteres, um rótulo IDNA não poderá corresponder ao wildcard. Por exemplo, xn--fsqu00atest.example.com não pode corresponder a *test.example.com.

    • Suporte a caracteres: o caractere curinga (*) corresponde apenas a números (0-9), letras maiúsculas e minúsculas e hífen (-). Por exemplo, *.example.com pode corresponder a test.example.com, mas não a test_test.example.com.

Upload de certificados

Não.

O ALB utiliza certificados do Alibaba Cloud ssl Certificates service. Portanto, faça o upload dos certificados no console do ssl Certificate, e não no console do ALB. Para mais informações, consulte Fazer upload de um certificado ssl.

Data de expiração do certificado inalterada

Esse problema geralmente ocorre quando sua instância do ALB está integrada ao WAF 2.0 no modo de proxy transparente e o certificado no WAF não foi atualizado. O WAF sincroniza certificados do ALB periodicamente. Para acionar uma atualização imediata, desative e reative o desvio de tráfego para seu domínio no console do WAF. Essa ação força a atualização do certificado. Observe que essa operação causa uma breve interrupção de service de 1 a 2 segundos.

Verificações de integridade

Modificar configuração de verificação de integridade

  1. Faça login no console do Application Load Balancer (ALB).

  2. No painel de navegação à esquerda, escolha ALB > Server Groups.

  3. Na página Server Groups, localize o grupo de servidores desejado e clique em seu ID.

  4. Na aba Details, na seção Health Check, clique em Modify Health Check.

  5. Na caixa de diálogo Modify Health Check, clique em Edit ao lado de Health Check Settings, modifique as configurações de verificação de integridade e clique em Save.

    Para mais informações, consulte Verificação de integridade do ALB.

Erros 502 apesar de verificações de integridade bem-sucedidas

Isso geralmente ocorre porque a carga nos servidores de backend da instância do ALB está muito alta. Quando a carga nos servidores de backend da instância do ALB é excessiva, podem ocorrer inconsistências entre os resultados da verificação de integridade e os resultados das solicitações de acesso. Para saber como verificar a carga do servidor de backend, consulte Solução de problemas e tratamento de alta carga em instâncias Linux.

Encaminhamento de solicitações quando as verificações de integridade falham

A instância do ALB ainda encaminha solicitações com base no algoritmo de agendamento configurado para minimizar a interrupção do service. Se as solicitações não forem tratadas conforme o esperado, verifique seus logs em busca de erros no servidor de backend ou revise sua configuração de verificação de integridade para identificar problemas. Para mais informações, consulte Solucionar falhas na verificação de integridade do ALB.

Solução de problemas

service inacessível via ALB

Siga estas etapas para diagnosticar o problema:

  1. Verificar a resolução do nome de domínio (CNAME): não é possível acessar diretamente uma nova instância do ALB usando seu nome DNS. Mapeie seu nome de domínio personalizado para o nome DNS da instância do ALB usando um registro CNAME. Use o comando nslookup ou dig para verificar a resolução. Para mais informações, consulte Nomes DNS da instância do ALB.

  2. Verificar o tipo de rede da instância: uma instância do ALB de rede privada só pode ser acessada de dentro de sua Virtual Private Cloud (vpc). Para habilitar o acesso público, altere o tipo de rede da instância para público e associe um Elastic IP (EIP). Para mais informações, consulte Alterar o tipo de rede de uma instância do ALB.

  3. Verificar o listener e as regras de encaminhamento: no console do ALB, verifique se um listener foi criado com a porta e o protocolo corretos. Confirme também se as regras de encaminhamento estão configuradas para corresponder ao nome de domínio e ao caminho das solicitações recebidas.

  4. Verificar o status da verificação de integridade: no console do ALB, verifique o status da verificação de integridade dos seus servidores de backend. Uma instância do ALB não encaminhará solicitações para servidores de backend não íntegros.

  5. Confirmar se o service de backend está em execução corretamente: faça login em um servidor de backend e execute o comando curl -I http://<backend_server_private_IP>:<port> para confirmar se o service de backend responde corretamente.

  6. Verificar as configurações de controle de acesso e firewall: garanta que as configurações de controle de acesso ou as regras do grupo de segurança da instância do ALB permitam o intervalo de endereços IP de source do cliente. Confirme também se o iptables ou softwares de segurança de terceiros nas instâncias do Elastic Compute Service (ecs) de backend permitem o intervalo de endereços IP locais da instância do ALB.

Solucionar alta latência

O ALB opera na camada de aplicação, o que significa que as solicitações são encaminhadas para os servidores de backend. Esse processo introduz uma pequena latência adicional em comparação ao acesso direto aos servidores de backend. Esse comportamento é esperado.

Se você experimentar uma latência significativamente alta, siga estas etapas para solucionar o problema:

  1. Ativar logs de acesso e analisar campos de latência: ative os Logs de Acesso do ALB e concentre-se nos seguintes campos:

    • request_time: o tempo em segundos desde quando o balanceador de carga recebe o primeiro pacote de solicitação até o momento em que envia a resposta.

    • upstream_response_time: o tempo em segundos desde quando o balanceador de carga começa a se conectar a um servidor de backend até receber todos os dados e fechar a conexão.

  2. Identificar a source da latência:

    • Se upstream_response_time estiver alto, os servidores de backend provavelmente são a source da latência. Verifique o desempenho da sua aplicação de backend, a eficiência das consultas ao banco de dados e o uso de recursos como cpu e memória. Adicione mais servidores de backend para distribuir a carga.

    • Se request_time for muito maior que upstream_response_time, a latência provavelmente está no caminho de rede entre o cliente e a instância do ALB. A partir do cliente, execute testes contínuos de ping ou um rastreamento MTR para o endereço de service do ALB para diagnosticar problemas no link de rede.

  3. Considerar cenários de acesso entre regiões: se o cliente e a instância do ALB estiverem em regiões diferentes, a latência de rede devido à distância física é inevitável. Recomendamos o uso do Global Accelerator (GA) para otimizar a experiência de acesso entre regiões.

service inacessível via nome de domínio

Após mapear seu nome de domínio personalizado para o nome DNS da instância do ALB com um registro CNAME, você ainda pode não conseguir acessar o service. Se receber um erro http 403 ou uma redefinição de conexão, a causa provável é um registro ICP incompleto para o seu nome de domínio.

Siga estas etapas para diagnosticar o problema:

  1. Verificar a configuração do registro CNAME: use o comando nslookup ou dig para verificar se o seu nome de domínio está resolvido corretamente para o nome DNS da instância do ALB. Para mais informações, consulte Configurar um Registro CNAME.

  2. Verificar o status do registro ICP do seu nome de domínio: de acordo com os regulamentos, nomes de domínio usados para acesso público na China continental devem ter um registro ICP válido. Caso contrário, o acesso será bloqueado. Faça login no sistema de Registro ICP da Alibaba Cloud para verificar o status do registro do seu nome de domínio. Se não estiver registrado, conclua o processo de registro ICP primeiro. Para mais informações, consulte Processo de Registro ICP.

  3. Determinar se é necessária uma transferência de registro ICP: se o seu nome de domínio foi registrado por meio de outro provedor de services cloud e você o está usando com a Alibaba Cloud pela primeira vez, deve concluir uma transferência de registro ICP. Esse processo registra suas informações de registro na Alibaba Cloud. O acesso pode ser bloqueado se a transferência não estiver concluída.

Códigos de status de erro comuns e possíveis causas

500 (Internal Server Error)

O servidor de backend encontrou um erro interno e não pôde processar a solicitação.

  • O backend retorna 500 diretamente: verifique o log de acesso. Se upstream_status for 500, o ALB provavelmente repassou o código de status do backend. Investigue o service de backend.

  • O servidor de backend fechou a conexão inesperadamente: o servidor de backend fechou a conexão antes de enviar uma resposta completa. Capture pacotes no servidor de backend para identificar a causa do fechamento inesperado da conexão.

502 (Bad Gateway)

Esse erro ocorre quando um listener http ou https recebe uma solicitação do cliente, mas o ALB falha ao encaminhar a solicitação para um servidor de backend ou ao receber uma resposta dele.

Abordagem de solução de problemas: primeiro, verifique o valor do campo upstream_status no log de acesso para determinar as próximas etapas.

  • Se upstream_status = 502: o ALB repassou o código de status 502 do servidor de backend. O problema reside no próprio service de backend. Investigue seu service de backend. Por exemplo, verifique se uma camada de Nginx ou gateway de backend está tentando fazer reverse proxy para um upstream inacessível.

  • Se upstream_status for outro valor (como 504, 444 ou 500): o status que o ALB retorna ao cliente difere de upstream_status, o que significa que o ALB alterou o código de status. Investigue por que o service de backend está retornando esse código de status específico verificando os logs do Nginx de backend, gateway ou aplicação.

  • Se upstream_status for - ou estiver vazio: o ALB não recebeu nenhuma resposta do backend. Isso significa que a solicitação nunca chegou ao backend ou a conexão com o backend foi encerrada anormalmente antes que uma resposta fosse enviada. Verifique as seguintes causas em ordem:

    • A comunicação TCP entre o ALB e o servidor de backend está falhando. Verifique se o service de backend está em execução, se a porta de service está escutando corretamente e se nenhuma regra de iptables ou software de segurança de terceiros no ecs de backend está bloqueando o bloco CIDR do vSwitch onde a instância do ALB está localizada. O ALB se comunica com os servidores de backend usando um Local IP atribuído pelo vSwitch. Capture pacotes para verificar se o handshake TCP foi bem-sucedido.

    • O backlog do servidor de backend está cheio. Isso faz com que o servidor descarte novas solicitações de conexão. Execute netstat -s | grep -i listen no servidor de backend e verifique se há um contador de drop.

    • O servidor de backend falhou ao processar a solicitação a tempo. Verifique os logs do servidor de backend e revise o uso de cpu e memória para identificar gargalos de desempenho.

    • O tamanho do pacote da solicitação do cliente excede a MTU do servidor de backend. Isso pode fazer com que pacotes curtos (como verificações de integridade) tenham êxito, enquanto pacotes longos falham. Capture pacotes no servidor de backend para analisar se o comprimento do pacote está dentro dos limites necessários.

    • A resposta do servidor de backend tem um formato inválido ou contém cabeçalhos http inválidos. Capture pacotes no servidor de backend para analisar se o formato da resposta está em conformidade com o padrão.

503 (service Temporarily Unavailable)

O servidor está temporariamente indisponível, geralmente devido a tráfego excedendo limites ou um service de backend indisponível.

  • O backend retorna 503 diretamente: verifique o log de acesso. Se upstream_status for 503, o ALB provavelmente repassou o código de status do backend. Investigue o service de backend.

  • A solicitação do cliente aciona o limitador de taxa do ALB:

    • Em cloud Monitor, verifique a métrica Requests per second.

    • O cloud Monitor exibe dados no nível de minuto e pode não refletir picos no nível de segundo. Verifique o log de acesso. Se o campo upstream_status for -, a solicitação não chegou ao servidor de backend.

    • Verifique o cabeçalho do pacote de resposta. Se contiver o campo ALB-QPS-Limited:Limited, a solicitação acionou o limitador de taxa do ALB.

  • Acesso direto por IP ou resolução DNS anormal: isso pode concentrar o tráfego em apenas alguns endereços IP e acionar o limitador de taxa. Acesse o ALB por meio do seu nome de domínio (consulte Configurar um CNAME para uma instância do ALB) e verifique se a resolução DNS funciona conforme o esperado.

  • O listener não tem servidores de backend configurados, ou os servidores de backend configurados têm peso 0.

  • Regra de encaminhamento padrão do ALB Ingress causa 503: ao instalar o controlador ALB Ingress no ACK, o controlador cria automaticamente uma regra de encaminhamento padrão e um grupo de servidores padrão associado na instância do ALB. O grupo de servidores padrão está inicialmente vazio. Quando o tráfego recebido não corresponde a nenhuma das regras de encaminhamento de Ingress configuradas, o ALB roteia a solicitação para a regra de encaminhamento padrão. Como o grupo de servidores padrão está vazio, o ALB retorna um erro 503. Esse comportamento é esperado. Não é necessário excluir manualmente a regra de encaminhamento padrão. Para resolver esse problema, configure as regras de encaminhamento baseadas em domínio corretas para rotear o tráfego para os grupos de servidores de backend correspondentes.

    Nota

    Um erro 503 indica que nenhum servidor de backend está disponível para processar a solicitação (o grupo de servidores está vazio), o que é diferente de um erro 502, onde existem servidores de backend, mas estão indisponíveis.

504 (Gateway Time-out)

O ALB atingiu o tempo limite enquanto aguardava uma resposta do servidor de backend.

  • O backend retorna 504 diretamente: verifique o log de acesso. Se upstream_status for 504, o ALB provavelmente repassou o código de status do backend. Investigue o service de backend.

  • A tentativa de conexão do ALB com o servidor de backend atinge o tempo limite: esse tempo limite é de 5 segundos por padrão e não pode ser alterado. Capture pacotes para identificar por que o servidor de backend não está respondendo a tempo.

  • Tempo limite de resposta do backend: o tempo limite de solicitação de conexão é de 60 segundos por padrão. Verifique a métrica UpstreamResponseTime no cloud Monitor e o campo upstream_response_time no log de acesso para determinar se a resposta do servidor de backend atingiu o tempo limite.

Integração com WAF

Integração transparente WAF 2.0 vs. integração baseada em service WAF 3.0

image

As principais diferenças são:

  • Integração transparente WAF 2.0: o WAF inspeciona primeiro as solicitações do cliente e depois as encaminha para uma instância do ALB ou CLB. Em uma integração transparente WAF 2.0, as solicitações passam por dois gateways. Consequentemente, mantenha configurações, como tempos limite e certificados, tanto no WAF quanto no balanceador de carga.

  • Integração baseada em service WAF 3.0: o WAF é integrado como um service fora do caminho. As solicitações do cliente vão diretamente para uma instância do ALB. Antes de encaminhar uma solicitação para um servidor de backend, o ALB extrai o conteúdo da solicitação e o envia ao WAF para inspeção. Como as solicitações passam por apenas um gateway, não é necessário sincronizar certificados e configurações, o que evita problemas como desvio de configuração.

Para mais informações, consulte Comparação entre WAF 3.0 e WAF 2.0.

Integração entre ALB e WAF

  • Recomendamos que você ative a proteção do WAF 3.0 para uma instância do ALB usando a integração baseada em service WAF 3.0. Isso significa usar uma instância do ALB aprimorada com WAF.

    • Regiões suportadas:

      Area

      Region

      China

      China (Chengdu), China (Qingdao), China (Beijing), China (Guangzhou), China (Hangzhou), China (Ulanqab), China (Shanghai), China (Shenzhen), China (Zhangjiakou), China (Hong Kong), and China (Heyuan)

      Asia-Pacific

      Philippines (Manila), Indonesia (Jakarta), Japan (Tokyo), Malaysia (Kuala Lumpur), Singapore, Thailand (Bangkok), and South Korea (Seoul)

      Europe and Americas

      Germany (Frankfurt), US (Silicon Valley), US (Virginia), and Mexico

      Middle East

      SAU (Riyadh - Partner Region) and UAE (Dubai)

    • Instâncias do ALB habilitadas para WAF usam o modelo de integração sdk do WAF 3.0. Se você tiver uma instância do WAF 2.0 em sua conta, primeiro libere a instância do WAF 2.0 ou migra-a para o WAF 3.0.

      Por padrão, o ALB não adiciona o cabeçalho X-Forwarded-Proto às solicitações. Após liberar uma instância do WAF 2.0, acessar a instância do ALB diretamente pode causar problemas de service, como redirecionamentos infinitos, porque os servidores de backend não conseguem identificar o protocolo original (http ou https). Para evitar esse problema, ative manualmente o cabeçalho de solicitação X-Forwarded-Proto na configuração do listener do ALB.

    • Instâncias do ALB habilitadas para WAF não suportam o recurso de prevenção de vazamento de dados do WAF.

  • Se quiser usar uma instância existente do WAF 2.0, instâncias do ALB Basic e Standard voltadas para a Internet suportam integração transparente WAF 2.0 nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Shenzhen), China (Chengdu), China (Beijing) e China (Zhangjiakou). Instâncias do ALB voltadas para rede interna não suportam integração transparente WAF 2.0.

Suporte à integração com WAF para CLB e ALB

Product

WAF 2.0

WAF 3.0

CLB

Supported

For instructions on integrating CLB with WAF 2.0, see:

  • {{XREF_43}}

  • {{XREF_44}}

  • {{XREF_45}}

  • {{XREF_46}}

Not supported

ALB

  • If your Alibaba Cloud account has an existing WAF 2.0 instance, ALB supports WAF 2.0 transparent integration. For more information, see {{XREF_47}}.

  • If your Alibaba Cloud account does not have a WAF 2.0 instance or WAF is not enabled, ALB supports only WAF 3.0 service-based integration. This requires purchasing a WAF-enhanced ALB instance.

Supported

For supported regions and instructions, see {{XREF_48}}.

Problemas na integração transparente WAF 2.0

Em uma integração transparente WAF 2.0, as solicitações do cliente passam pelo WAF para inspeção antes de serem enviadas para uma instância do ALB ou CLB. Esse caminho de dois gateways exige que você sincronize várias configurações entre o WAF e o balanceador de carga. Alterações em tempos limite e certificados são especialmente propensas a atrasos na sincronização de configurações.