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 Timeoutnã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: