As solicitações falham entre um balanceador de carga e um Gateway de API por causa de problemas de conectividade ou de posicionamento de sub-rede

Descubra como diagnosticar e solucionar problemas com o caminho de rede entre um balanceador de carga e um gateway de API criado com o serviço API Gateway.

Quando você coloca um URL do balanceador de carga na frente do Gateway de API e as solicitações retornam 504 Gateway Timeout, a falha geralmente está no caminho de rede entre o balanceador de carga e o Gateway de API. O aplicativo de back-end pode estar funcionando corretamente, mas a solicitação pode não chegar ao Gateway de API ou ao serviço de back-end por meio do novo caminho.

Sintomas do Problema

Você pode ver um ou mais dos seguintes sintomas:

  • O novo URL do balanceador de carga retorna 504 Gateway Timeout.
  • A autenticação é concluída, mas o aplicativo não foi atingido.
  • Os logs de acesso e os logs de execução do Gateway de API não mostram a solicitação esperada.
  • O mesmo serviço de back-end funciona em um caminho, mas falha por meio do novo URL do balanceador de carga.

Possíveis Causas

Esse problema pode ter uma ou mais das seguintes causas:

  • O conjunto de backend do balanceador de carga aponta para o ponto final errado do Gateway de API.
  • O balanceador de carga e o Gateway de API usam sub-redes que não permitem o caminho de tráfego necessário.
  • Os grupos de segurança de rede (NSGs) ou as listas de segurança não permitem o tráfego entre o balanceador de carga e o Gateway de API.
  • As tabelas de roteamento não suportam o caminho de rede entre o balanceador de carga e o Gateway de API.
  • O tempo limite da solicitação é atingido para que o Gateway de API possa processá-lo.

Mapear o Caminho da Solicitação

Revise cada parte do caminho de solicitação antes de atualizar regras de rede ou destinos de back-end:

  • Cliente para balanceador de carga.
  • Balanceador de carga com o Gateway de API.
  • Gateway de API para o serviço de back-end.

Na Console, verifique os seguintes recursos:

  • O listener frontend do balanceador de carga.
  • O conjunto de backend do balanceador de carga.
  • O destino de back-end definido para o Gateway de API.
  • A sub-rede de balanceador de carga.
  • A sub-rede do Gateway de API.
  • O OCID do Gateway de API.
  • O OCID de implantação da API.

Verifique se o conjunto de backend do balanceador de carga tem como alvo o endereço ou o ponto final pretendido do Gateway de API, não um caminho desatualizado ou inacessível.

Verificar se a Solicitação Atinge o Gateway de API

Envie a solicitação por meio do URL do balanceador de carga e capture a resposta:

curl -i https://<load-balancer-url>/<path>

Verifique os logs do Gateway de API da solicitação:

  • Abra o log de acesso do Gateway de API.
  • Abra o log de execução do Gateway de API.
  • Pesquise na janela de tempo a solicitação com falha.
  • Se o valor estiver disponível, procure o valor opc-request-id.

Use os resultados do log para identificar onde a solicitação falhou:

  • Se os logs do Gateway de API não mostrarem a solicitação, diagnostique e solucione problemas do balanceador de carga ou do caminho de rede antes do Gateway de API.
  • Se os logs do Gateway de API mostrarem a solicitação, solucione problemas do caminho do Gateway de API para o serviço de back-end.

Revisar Posicionamento de Sub-rede e Regras de Rede

Para a sub-rede do balanceador de carga e a sub-rede do Gateway de API, revise os seguintes recursos de rede:

  • Tabelas de roteamento
  • NSGs.
  • Listas de segurança.

Verifique os seguintes requisitos de rede:

  • A sub-rede do balanceador de carga pode enviar tráfego para a sub-rede do Gateway de API.
  • A sub-rede do Gateway de API pode receber o tráfego necessário do caminho do balanceador de carga.
  • Nenhuma regra bloqueia o protocolo ou a porta que o balanceador de carga usa para estabelecer conexão com o Gateway de API.

Se o balanceador de carga e o Gateway de API tiverem sido criados em diferentes sub-redes para o novo caminho, compare essas sub-redes com o caminho de trabalho conhecido.

Corrija o Problema de Conectividade

Aplique a resolução que corresponde ao problema encontrado:

  • Se o conjunto de backend do balanceador de carga apontar para o destino errado do Gateway de API, atualize o conjunto de backend.
  • Se a sub-rede do balanceador de carga e a sub-rede do Gateway de API não suportarem o caminho pretendido, atualize o posicionamento da sub-rede ou a configuração de roteamento.
  • Se NSGs ou listas de segurança bloquearem o caminho, atualize as regras de entrada ou saída.
  • Se as tabelas de roteamento não permitirem tráfego entre o balanceador de carga e o Gateway de API, atualize as regras de roteamento.
  • Se o Gateway de API nunca receber a solicitação, corrija o caminho do Gateway de balanceador de carga para API antes de diagnosticar e solucionar problemas do serviço de back-end.

Verificar Conectividade

Depois de atualizar o destino de back-end, o posicionamento da sub-rede ou as regras de rede, verifique a conectividade novamente:

  • Envie a mesma solicitação por meio do URL do balanceador de carga.
  • Confirme se a solicitação aparece nos logs do Gateway de API.
  • Confirme se a resposta 504 Gateway Timeout não ocorre mais no caminho do Gateway de balanceador de carga para API.
  • Confirme se o aplicativo está acessível por meio do URL externo pretendido.

Para obter mais informações

Para obter mais informações, consulte: