Anforderungen können aufgrund von Konnektivitäts- oder Subnetzplatzproblemen zwischen einem Load Balancer und API-Gateway nicht erfolgreich ausgeführt werden
Erfahren Sie, wie Sie Probleme mit dem Netzwerkpfad zwischen einem Load Balancer und einem API-Gateway beheben, das mit dem API-Gateway-Service erstellt wurde.
Wenn Sie eine Load-Balancer-URL vor dem API-Gateway platzieren und Anforderungen 504 Gateway Timeout zurückgeben, befindet sich der Fehler häufig im Netzwerkpfad zwischen dem Load Balancer und dem API-Gateway. Die Backend-Anwendung funktioniert möglicherweise ordnungsgemäß, aber die Anforderung erreicht das API-Gateway oder den Backend-Service möglicherweise nicht über den neuen Pfad.
Problemsymptome
Möglicherweise sehen Sie eines oder mehrere der folgenden Symptome:
- Die neue Load-Balancer-URL gibt
504 Gateway Timeoutzurück. - Die Authentifizierung ist abgeschlossen, aber die Anwendung wurde nicht erreicht.
- API-Gateway-Zugriffslogs und Ausführungslogs zeigen die erwartete Anforderung nicht an.
- Derselbe Backend-Service funktioniert über einen Pfad, verläuft jedoch nicht erfolgreich über die neue Load-Balancer-URL.
Mögliche Gründe
Dieses Problem kann eine oder mehrere der folgenden Ursachen haben:
- Das Backend-Set des Load Balancers verweist auf den falschen API-Gateway-Endpunkt.
- Der Load Balancer und das API-Gateway verwenden Subnetze, die den erforderlichen Trafficpfad nicht zulassen.
- Netzwerksicherheitsgruppen (NSGs) oder Sicherheitslisten erlauben keinen Traffic zwischen dem Load Balancer und dem API-Gateway.
- Routentabellen unterstützen den Netzwerkpfad zwischen Load Balancer und API-Gateway nicht.
- Die Anforderung wird wegen Timeout abgebrochen, bevor API Gateway sie verarbeiten kann.
Anforderungspfad zuordnen
Prüfen Sie jeden Teil des Anforderungspfads, bevor Sie Netzwerkregeln oder Backend-Ziele aktualisieren:
- Client zu Load Balancer.
- Load Balancer zu API-Gateway.
- API-Gateway zum Backend-Service.
Prüfen Sie in der Konsole die folgenden Ressourcen:
- Der Frontend Listener des Load Balancers.
- Das Backend-Set des Load Balancers.
- Das Backend-Ziel, das für API-Gateway definiert ist.
- Das Load-Balancer-Subnetz.
- Das API-Gateway-Subnetz.
- Die API-Gateway-OCID.
- Die API-Deployment-OCID.
Stellen Sie sicher, dass das Load-Balancer-Backend-Set die gewünschte API-Gatewayadresse oder den gewünschten Endpunkt als Ziel festlegt und keinen veralteten oder nicht erreichbaren Pfad aufweist.
Prüfen, ob die Anforderung das API-Gateway erreicht
Senden Sie die Anforderung über die Load-Balancer-URL, und erfassen Sie die Antwort:
curl -i https://<load-balancer-url>/<path>
Prüfen Sie die API-Gateway-Logs für die Anforderung:
- Öffnen Sie das API-Gateway-Zugriffslog.
- Öffnen Sie das API-Gateway-Ausführungslog.
- Durchsuchen Sie das Zeitfenster nach der nicht erfolgreichen Anforderung.
- Wenn der Wert verfügbar ist, suchen Sie nach dem Wert
opc-request-id.
Mit den Logergebnissen können Sie ermitteln, wo die Anforderung nicht erfolgreich war:
- Wenn die Anforderung in API-Gateway-Logs nicht angezeigt wird, beheben Sie die Fehler im Load Balancer oder im Netzwerkpfad vor dem API-Gateway.
- Wenn in API-Gatewaylogs die Anforderung angezeigt wird, beheben Sie Fehler beim Pfad vom API-Gateway zum Backend-Service.
Subnetzplatzierung und Netzwerkregeln prüfen
Prüfen Sie die folgenden Netzwerkressourcen für das Load-Balancer-Subnetz und das API-Gateway-Subnetz:
- Routentabellen.
- NSGs.
- Sicherheitslisten.
Prüfen Sie die folgenden Netzwerkanforderungen:
- Das Load-Balancer-Subnetz kann Traffic an das API-Gateway-Subnetz senden.
- Das API-Gatewaysubnetz kann den erforderlichen Traffic vom Load-Balancer-Pfad empfangen.
- Keine Regel blockiert das Protokoll oder den Port, mit dem/dem der Load Balancer eine Verbindung zum API-Gateway herstellt.
Wenn der Load Balancer und das API-Gateway in verschiedenen Subnetzen für den neuen Pfad erstellt wurden, vergleichen Sie diese Subnetze mit dem Pfad, der für die Verarbeitung bekannt ist.
Konnektivitätsproblem beheben
Wenden Sie die Lösung an, die dem gefundenen Problem entspricht:
- Wenn das Backend-Set des Load Balancers auf das falsche API-Gatewayziel verweist, aktualisieren Sie das Backend-Set.
- Wenn das Load-Balancer-Subnetz und das API-Gateway-Subnetz den beabsichtigten Pfad nicht unterstützen, aktualisieren Sie die Subnetzplatzierungs- oder Routingkonfiguration.
- Wenn NSGs oder Sicherheitslisten den Pfad blockieren, aktualisieren Sie die Ingress- oder Egress-Regeln.
- Wenn Routentabellen keinen Traffic zwischen dem Load Balancer und API-Gateway zulassen, aktualisieren Sie die Routingregeln.
- Wenn API Gateway die Anforderung nie empfängt, korrigieren Sie den Load-Balancer-zu-API-Gateway-Pfad, bevor Sie Probleme mit dem Backend-Service beheben.
Konnektivität prüfen
Nachdem Sie das Backend-Ziel, die Subnetzplatzierung oder die Netzwerkregeln aktualisiert haben, prüfen Sie die Konnektivität erneut:
- Senden Sie dieselbe Anforderung über die Load-Balancer-URL.
- Vergewissern Sie sich, dass die Anforderung in API-Gateway-Logs angezeigt wird.
- Stellen Sie sicher, dass die
504 Gateway Timeout-Antwort nicht mehr im Load-Balancer-zu-API-Gatewaypfad erfolgt. - Stellen Sie sicher, dass die Anwendung über die beabsichtigte externe URL erreichbar ist.
Weitere Informationen
Weitere Informationen finden Sie unter: