Mi si presentano errori HTTP 502 quando il mio client effettua richieste a un sito Web attraverso un Classic Load Balancer. In che modo posso risolvere il problema?

Gli errori HTTP 502 (bad gateway) possono verificarsi per una delle seguenti ragioni:

  • Il server Web o i server dell'applicazione back-end associata attivi sulle istanze EC2 restituiscono un messaggio che non può essere analizzato dal tuo Classic Load Balancer.
  • Il server Web o i server dell'applicazione back-end associata restituiscono un messaggio di errore 502.

Per trovare la fonte di questi errori 502:

  • Abilita i registri di accesso ELB sul tuo Classic Load Balancer per vedere il codice di risposta di back-end e dell'Elastic Load Balancing (ELB) per ogni richiesta. Una voce del registro di accesso comprende due campi: un elb_status_code e un backend_status_code. Utilizza questi codici per determinare la fonte dell'errore 502.
  • Visualizza i parametri CloudWatch del bilanciatore del carico per vedere gli errori 502 generati dal back-end, che appaiono sotto il parametro HTTPCode_Backend_5XX. Gli errori 502 generati da ELB appaiono sotto il parametro HTTPCode_ELB_5XX.

Se la risposta di back-end è la fonte dell'errore 502 di ELB, il problema potrebbe essere causato da:

  • Una risposta che contiene più di un CRLF tra ogni intestazione.
  • Una risposta che contiene un'intestazione Content-Lenght con al suo interno un numero non intero.
  • Una risposta ha un numero di byte nel corpo superiore al valore dell'intestazione Content-Lenght.

Se l'errore 502 è generato dai tuoi server di back-end, contatta il proprietario dell'applicazione. Se l'errore 502 è generato dal Classic Load Balancer, la risposta HTTP da parte del back-end è malformata. Segui questi passaggi per risolvere gli errori 502 generati da ELB: 

1. Controlla se il corpo della risposta ricevuta dall'applicazione back-end rispetta le specifiche HTTP come menzionato nei seguenti RFC:
RFC 7230 - HTTP/1.1: sintassi del messaggio e routing
RFC 7231 - HTTP/1.1: semantica e contenuto
RFC 7232 - HTTP/1.1: Richieste condizionali
RFC 7233 - HTTP/1.1: richieste di range
RFC 7234 - HTTP/1.1: Caching
RFC 7235 - HTTP/1.1: Autenticazione

2. Assicurati che l'intestazione della risposta abbia la sintassi corretta: una chiave e il valore, come Content-Type:text. Assicurati che Content-Length o la codifica del trasferimento non vengano dimenticati nell'intestazione della risposta HTTP. Per maggiori informazioni sui campi dell'intestazione dei server Web HTTP, consulta la Lista dei campi dell'intestazione HTTP. Controlla le risposte HTTP ricevute eseguendo un comando simile a quello che segue:

curl -vko /dev/null server_instance_IP

3. Controlla il registro accessi ELB per trovare errori HTTP 502 duplicati. Gli errori 502 sia per elb_status_code che per backend_status_code indicano che c'è un problema con una o più delle istanze del server Web. Identifica quali istanze del server Web stanno mostrando il problema, quindi controlla i registri dei server Web delle istanze dei server back-end Web. Consulta le seguenti posizioni del registro per alcuni server Web e sistemi operativi comuni:

Registri Apache

  • I registri dei server Web per CentOS, RHEL, Fedora e Amazon Linux si trovano nella directory /var/log/httpd/.
  • I registri dei server Web per Debian e Ubuntu Linux si trovano nelle directory /var/log/apache2 e /var/log/lighthttpd/.

Registri Nginx

  • La posizione del registro accessi di nginx è definita all'interno del file nginx.conf: access_log /path/to/access.log
  • La posizione di default è /var/log/nginx/access.log

Registri IIS

I registri dei server Web per Windows IIS 7, IIS 7.5 e IIS 8.0 sono archiviati nella directory inetpub/logs/Logfiles. Per ulteriori informazioni sui registri di Internet Information Services (IIS), consulta Codice di stato HTTP su IIS 7.0, IIS 7.5 e IIS 8.0. Se hai accertato che i tuoi errori 502 sono generati da ELB e che la risposta del tuo back-end corrisponde alle convenzioni RFC, contatta AWS Support.


Questa pagina ti è stata utile? | No

Torna alPortale del sapere di AWS Support

Serve assistenza? Visita l'AWS Support Center

Pubblicato il: 09-09-2016

Aggiornato il: 10-04-2018