Le richieste non riescono tra un load balancer e un gateway API a causa di problemi di connettività o posizionamento della subnet

Scopri come risolvere i problemi relativi al percorso di rete tra un load balancer e un gateway API creato con il servizio Gateway API.

Quando si posiziona un URL del load balancer di fronte al gateway API e le richieste restituiscono 504 Gateway Timeout, l'errore si trova spesso nel percorso di rete tra il load balancer e il gateway API. L'applicazione backend potrebbe funzionare correttamente, ma la richiesta potrebbe non raggiungere il gateway API o il servizio backend tramite il nuovo percorso.

Sintomi problema

Potresti vedere uno o più dei seguenti sintomi:

  • Il nuovo URL del load balancer restituisce 504 Gateway Timeout.
  • Autenticazione completata, ma l'applicazione non è stata raggiunta.
  • I log di accesso e di esecuzione del gateway API non mostrano la richiesta prevista.
  • Lo stesso servizio backend funziona in un unico percorso, ma non riesce tramite il nuovo URL del load balancer.

Cause possibili

Questo problema può avere una o più delle seguenti cause:

  • Il set backend del load balancer punta all'endpoint del gateway API errato.
  • Il load balancer e il gateway API utilizzano subnet che non consentono il percorso di traffico richiesto.
  • I gruppi di sicurezza di rete (NSG) o le liste di sicurezza non consentono il traffico tra il load balancer e il gateway API.
  • Le tabelle di instradamento non supportano il percorso di rete tra il load balancer e il gateway API.
  • La richiesta scade prima che il gateway API possa elaborarla.

Mappa percorso richiesta

Rivedere ogni parte del percorso della richiesta prima di aggiornare le regole di rete o le destinazioni backend:

  • Da client a load balancer.
  • Dal load balancer al gateway API.
  • Gateway API per il servizio backend.

Nella console verificare le risorse riportate di seguito.

  • Listener frontend del load balancer.
  • Set backend del load balancer.
  • Destinazione backend definita per il gateway API.
  • La subnet del load balancer.
  • Subnet del gateway API.
  • OCID gateway API.
  • OCID di distribuzione API.

Verificare che il set backend del load balancer sia destinato all'indirizzo o all'endpoint del gateway API previsto, non a un percorso obsoleto o irraggiungibile.

Controlla se la richiesta raggiunge il gateway API

Inviare la richiesta tramite l'URL del load balancer e acquisire la risposta:

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

Rivedere i log del gateway API per la richiesta:

  • Aprire il log degli accessi al gateway API.
  • Aprire il log di esecuzione del gateway API.
  • Cercare nella finestra temporale la richiesta non riuscita.
  • Se è disponibile, cercare il valore opc-request-id.

Utilizzare i risultati del log per identificare la posizione in cui la richiesta non è riuscita:

  • Se i log del gateway API non mostrano la richiesta, risolvere i problemi relativi al load balancer o al percorso di rete prima del gateway API.
  • Se i log del gateway API mostrano la richiesta, risolvere i problemi relativi al percorso dal gateway API al servizio backend.

Rivedi posizionamento subnet e regole di rete

Per la subnet del load balancer e la subnet del gateway API, esaminare le risorse di rete seguenti:

  • Tabelle di instradamento.
  • NSG.
  • Liste di sicurezza.

Verificare i seguenti requisiti di rete:

  • La subnet del load balancer può inviare traffico alla subnet del gateway API.
  • La subnet del gateway API può ricevere il traffico richiesto dal percorso del load balancer.
  • Nessuna regola blocca il protocollo o la porta utilizzati dal load balancer per connettersi al gateway API.

Se il load balancer e il gateway API sono stati creati in subnet diverse per il nuovo percorso, confrontare tali subnet con il percorso di lavoro noto.

Risolvere il problema di connettività

Applicare la risoluzione corrispondente al problema trovato:

  • Se il set backend del load balancer punta alla destinazione del gateway API errata, aggiornare il set backend.
  • Se la subnet del load balancer e la subnet del gateway API non supportano il percorso previsto, aggiornare la configurazione di posizionamento o instradamento della subnet.
  • Se i gruppi NSG o le liste di sicurezza bloccano il percorso, aggiornare le regole di entrata o di uscita.
  • Se le tabelle di instradamento non consentono il traffico tra il load balancer e il gateway API, aggiornare le regole di instradamento.
  • Se il gateway API non riceve mai la richiesta, correggere il percorso del gateway dal load balancer all'API prima di risolvere i problemi del servizio backend.

Verifica connettività

Dopo aver aggiornato la destinazione backend, il posizionamento della subnet o le regole di rete, verificare di nuovo la connettività:

  • Invia la stessa richiesta tramite l'URL del load balancer.
  • Confermare che la richiesta venga visualizzata nei log del gateway API.
  • Confermare che la risposta 504 Gateway Timeout non si verifica più nel percorso del gateway tra load balancer e API.
  • Verificare che l'applicazione sia raggiungibile tramite l'URL esterno previsto.

Per ulteriori informazioni

Per ulteriori informazioni, fare riferimento agli argomenti sotto riportati.