Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Video
Guarda il seguente video per scoprire di più sulla risoluzione degli errori 503 Service Unavailable.
| Video | Descrizione |
|---|---|
| Errore 503 Service Unavailable dal server di backend | Scopri di più su:
|
Sintomo
L'applicazione client riceve uno stato della risposta HTTP 503 con il messaggio Service Unavailable dopo una chiamata al proxy API.
Messaggi di errore
Puoi visualizzare uno dei seguenti messaggi di errore:
HTTP/1.1 503 Service Unavailable
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity
Potresti anche visualizzare un messaggio di errore simile al seguente nella risposta HTTP:
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Nota: il codice di risposta e il messaggio di errore riportati sopra sono solo esempi. In alcuni casi, potresti ricevere solo il codice di risposta di errore senza alcun messaggio di errore. Il formato e il contenuto del codice di risposta di errore e del messaggio di errore possono variare a seconda dell'implementazione del server di backend.
Cause
Il codice di stato HTTP 503 indica che al momento il server non è in grado di gestire le richieste in entrata. In genere, questo errore si verifica perché il server è troppo occupato o è temporaneamente inattivo per manutenzione.
Le possibili cause della risposta 503 Service Unavailable sono:
| Causa | Descrizione | Chi può eseguire i passaggi per la risoluzione dei problemi |
|---|---|---|
| Server sovraccarico | Il server di backend è sovraccarico o ha superato la sua capacità e non può gestire nuove richieste client in entrata. | Utenti di Edge Public Cloud e Private Cloud |
| Server in manutenzione | Il server di backend potrebbe essere temporaneamente in manutenzione. | Utenti di Edge Public Cloud e Private Cloud |
Causa: server sovraccarico/server in manutenzione
In Apigee Edge, l'errore 503 Service Unavailable può essere restituito da un server di backend in una delle seguenti circostanze:
- Un server di backend è sovraccarico/occupato e non può gestire nuove richieste.
- Il server di backend è inattivo per un periodo di tempo temporaneo a causa della manutenzione.
Diagnosi
Per diagnosticare l'errore, puoi utilizzare uno dei seguenti tre metodi:
- Strumento di traccia
- Log degli accessi NGINX
- Chiamata diretta al server di backend
Fai clic sulle schede di seguito per scoprire di più su ogni metodo.
Strumento di traccia
- Attiva la sessione di traccia, ed effettua la chiamata API per riprodurre il problema: 503 Service Unavailable.
- Seleziona una delle richieste non riuscite ed esamina la traccia.
- Esamina le varie fasi della traccia e individua il punto in cui si è verificato l'errore.
- Se riscontri che l'errore 503 viene restituito come risposta dal server di destinazione,
la causa dell'errore 503 è il server di destinazione.
Ecco uno screenshot di esempio della traccia che mostra la risposta 503 Service Unavailable ricevuta dal server di destinazione:
- Fai clic sulla fase Risposta ricevuta dal server di destinazione ed esamina le sezioni
Intestazioni della risposta e Contenuto della risposta per verificare se contengono informazioni utili:
- Le intestazioni della risposta potrebbero contenere l'intestazione Server, che indica da dove è stata inviata la risposta di errore.
- Il contenuto della risposta potrebbe contenere ulteriori informazioni sul motivo per cui il server di destinazione ha inviato il codice di risposta 503.
- Verifica che l'errore 503 provenga dal server di destinazione controllando
i valori di X-Apigee-fault-source e X-Apigee-fault-code nella fase AX
(Dati di analisi registrati) della traccia utilizzando i passaggi riportati di seguito:
- Fai clic sulla fase AX (Dati di analisi registrati) come mostrato nello screenshot di seguito:

- Scorri verso il basso i dettagli della fase fino alla sezione Intestazioni della risposta e determina i valori
di X-Apigee-fault-code e X-Apigee-fault-source come mostrato di seguito:

- Se i valori di X-Apigee-fault-source e X-Apigee-fault-code corrispondono ai valori
mostrati nella tabella di seguito, puoi confermare che l'errore 503 proviene dal
server di destinazione:
Intestazioni della risposta Valore X-Apigee-fault-source destinazione X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
- Fai clic sulla fase AX (Dati di analisi registrati) come mostrato nello screenshot di seguito:
- Verifica se utilizzi l'incatenamento dei proxy, ovvero se il server di destinazione/endpoint di destinazione
richiama un altro proxy in Apigee. Per determinarlo:
- Torna alla fase Richiesta inviata al server di destinazione e fai clic sul pulsante Mostra curl e determina l'alias host del server di destinazione.
- Se l'alias host del server di destinazione rimanda a un alias host virtuale, si tratta di un incatenamento dei proxy. In questo caso, devi ripetere tutti i passaggi precedenti per il proxy concatenato finché non determini la causa effettiva dell'errore 503 Service Unavailable. In questi casi, l'errore 503 Service Unavailable può verificarsi anche in altri proxy concatenati in altre fasi, che possono essere diagnosticati utilizzando questa guida.
- Se l'alias host del server di destinazione rimanda al server di backend, vai alla sezione Risoluzione.
Log degli accessi NGINX
Puoi anche fare riferimento ai log degli accessi NGINX per determinare se il codice di stato 503 è stato inviato dal server di backend. Questa operazione è particolarmente utile se il problema si è verificato in passato o se è intermittente e non riesci ad acquisire la traccia nell'interfaccia utente. Segui questi passaggi per determinare queste informazioni dai log degli accessi NGINX:
- Controlla i log degli accessi NGINX.
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- Cerca eventuali errori 503 per il proxy API specifico durante un periodo di tempo specifico (se il problema si è verificato in passato) o per eventuali richieste che non vanno a buon fine con l'errore 503.
- Se sono presenti errori 503, controlla se l'errore proviene dal server di backend.
Se i valori di X-Apigee-fault-source e X-Apigee-fault-code corrispondono ai
valori mostrati
nella tabella di seguito, l'errore 503 proviene dal server di backend:
Intestazioni della risposta Valore X-Apigee-fault-source destinazione X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode Ecco una voce di esempio che mostra l'errore 503 causato dal server di destinazione:
- Esamina il proxy API specifico e assicurati di utilizzare l'incatenamento dei proxy ovvero se il server di destinazione/endpoint di destinazione non richiama un altro proxy in Apigee. Se utilizzi l'incatenamento dei proxy, devi ripetere tutti i passaggi precedenti per il proxy concatenato finché non determini la causa effettiva dell'errore 503 Service Unavailable. In questi casi, l'errore 503 Service Unavailable può verificarsi anche in altri proxy concatenati in altre fasi, che possono essere diagnosticati utilizzando questa guida.
- Se confermi di non utilizzare l'incatenamento dei proxy e l'errore 503 proviene dal tuo server di backend, vai alla sezione Risoluzione.
Chiamata al server di backend
Puoi effettuare una chiamata diretta al server di backend e verificare di ricevere la stessa 503 Service Unavailable risposta ricevuta quando la richiesta è stata effettuata tramite Apigee Edge.
- Assicurati di avere tutte le intestazioni, i parametri di query e le credenziali necessarie che devono essere passate al server di backend come parte della richiesta.
- Se il servizio di backend è accessibile pubblicamente, puoi utilizzare il comando curl, Postman o qualsiasi altro client REST e richiamare direttamente l'API del server di backend.
- Se il server di backend è accessibile solo dai processori di messaggi, puoi utilizzare il comando curl, Postman o qualsiasi altro client REST e richiamare direttamente l'API del server di backend dal processore di messaggi.
- Verifica che il servizio di backend restituisca effettivamente l'errore 503 Service Unavailable.
Risoluzione
Se accerti che l'errore 503 proviene dal server di backend, puoi eseguire le seguenti operazioni per risolvere il problema:
- Se il problema è causato dal fatto che il server di backend è inattivo per manutenzione, puoi riportarlo online dopo il periodo di manutenzione.
- Se il problema è causato dal sovraccarico del server di backend, risolvilo se hai accesso al server di backend. In caso contrario potrebbe essere necessario collaborare con il team del server di backend per risolvere il problema.
Diagnosticare i problemi utilizzando il monitoraggio delle API
Il monitoraggio delle API ti consente di isolare rapidamente le aree problematiche per diagnosticare i problemi di errore, prestazioni, e latenza e la relativa origine, ad esempio app per sviluppatori, proxy API, target di backend, o la piattaforma API.
Segui un esempio di scenario che mostra come risolvere i problemi 5xx con le API utilizzando il monitoraggio delle API. Ad esempio, potresti voler configurare un avviso per ricevere una notifica quando il numero di errori messaging.adaptors.http.flow.ErrorResponseCode supera una determinata soglia.
Informazioni di diagnostica da raccogliere
Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni di diagnostica e contatta l'assistenza Apigee.
Se sei un utente di cloud pubblico, fornisci le seguenti informazioni:
- Nome dell'organizzazione
- Nome ambiente
- Nome del proxy API
- Comando curl completo per riprodurre l'errore 503
- File di traccia contenente le richieste con errore 503 Service Unavailable
- Se gli errori 503 non si verificano al momento, fornisci il periodo di tempo con le informazioni sul fuso orario in cui si sono verificati gli errori 503 in passato.
Se sei un utente di cloud privato, fornisci le seguenti informazioni:
- Messaggio di errore completo osservato per le richieste non riuscite.
- Nome dell'organizzazione, dell'ambiente e del proxy API per cui stai osservando gli errori 503.
- Bundle del proxy API.
- File di traccia contenente le richieste con errore 503 Service Unavailable.
- Log degli accessi NGINX.
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- Log del processore di messaggi.
/opt/apigee/var/log/edge-message-processor/logs/system.log
- Il periodo di tempo con le informazioni sul fuso orario in cui si sono verificati gli errori 503.