I codici di errore HTTP vengono eventualmente restituiti dal server Web al client all’atto della richiesta di una specifica pagina o di una risorsa quando vi sono problemi relativamente alla sua corretta erogazione. In realtà, ogni volta che il browser chiede a un qualunque elemento al server Web, quest’ultimo restituisce un codice di stato. Quando tutto è andato a buon fine, viene rilasciato il codice 200 (“OK”) nell’intestazione della risposta HTTP. Ultimamente può capitare di vedere spesso errori 502 Bad Gateway: cosa sono, a cosa sono dovuti e come risolvere il problema?
I codici di stato delle richieste HTTP
Indipendentemente dal fatto che si utilizzi il protocollo HTTP oppure HTTPS, variante che aggiunge la cifratura dei dati e l’attestazione dell’identità del sito Web attraverso un certificato digitale, ogni risorsa trasferita al browser contiene, nell’intestazione, un codice di stato. Tra i più famosi ci sono gli errori 404 e 500 che, rispettivamente, segnalano una risorsa mancante e un problema a livello server che ha impedito l’erogazione dell’elemento richiesto.
Con gli errori 500, di solito è possibile fare ben poco: la loro comparsa è indizio di un’anomalia riscontrata dal server Web. Possono essere causati da un errore di programmazione negli script delle pagine, dall’impossibilità di connettersi a un database, dall’indisponibilità di una risorsa utilizzata lato server, da un problema software che va ad impattare sul corretto funzionamento del server Web. Giusto per fare qualche esempio.
Nel caso degli errori 500, insomma, il problema è server side quindi dipende e può essere risolto solo dagli amministratori del sito Web che si sta visitando.
Identikit dell’errore 502 Bad Gateway
Mentre l’errore 500 è generico e, a meno della comparsa di messaggi aggiuntivi, non fornisce spiegazioni dettagliate sulla natura del problema, la comparsa di 502 Bad Gateway è certamente più “parlante”.
L’errore 502 Bad Gateway, infatti, indica un problema di comunicazione tra un server e un gateway o proxy. Il messaggio di presenta quando il gateway o il proxy non riceve una risposta valida da parte del server di destinazione.
Gateway e proxy sono sistemi che si interpongono tra il client dell’utente (il browser che richiede una risorsa via HTTP/HTTPS) e il server Web vero e proprio. Se questo sistema intermedio non può comunicare con il server di destinazione, ad esempio perché non risponde, tarda a farlo oppure invia risposte inadeguate (perché è a sua volta in errore), ecco spuntare l’errore 502 Bad Gateway.
Ma perché c’è bisogno di usare un gateway o un proxy? Non è possibile collegare il browser direttamente con il server di destinazione?
Gateway e proxy: perché vengono utilizzati sul Web
È sempre crescente il numero di siti Web che si servono di gateway e proxy. I motivi sono i più disparati: caching, bilanciamento del carico, protezione e sicurezza, ottimizzazione dei pacchetti dati, filtraggio e controllo degli accessi. Ecco perché, quando qualcosa non funziona, ultimamente si assiste sempre più spesso alla comparsa dell’errore 502.
Un server proxy può memorizzare in cache le risposte del server di destinazione. Quando un qualunque browser, lato client, effettua la richiesta di una risorsa, il proxy verifica se ha una copia in cache della risposta. In caso affermativo, il proxy restituire direttamente la risposta al client senza dover contattare nuovamente il server di destinazione. Ciò migliora le prestazioni riducendo la latenza e la banda utilizzata. Uno dei servizi più famosi che offrono funzionalità di proxying e caching è Cloudflare, ma ne esistono tanti altri. Il vantaggio di Cloudflare è che queste abilità sono accessibili anche con il piano free, completamente gratuito.
Grazie a questo meccanismo, il server Web di destinazione risulta automaticamente molto più “scarico” sia a livello di risorse impegnate (CPU, memoria,…) che di banda impegnata.
Cosa fanno proxy e gateway
Un proxy o un gateway, come accennato in precedenza, possono essere utilizzati anche per distribuire il carico delle richieste tra più server di destinazione. Invece di inviare tutte le richieste direttamente a un singolo server, si possono usare algoritmi di bilanciamento del carico. In questo modo gli amministratori possono migliorare le prestazioni massimizzando la scalabilità del sistema.
Alcuni proxy mettono a disposizione funzionalità avanzate come quelle per la sicurezza. Esse sono utili, ad esempio, per monitorare i pacchetti dati in transito e filtrare gli indirizzi IP a partire dai quali può notoriamente provenire traffico “sporco” o dannoso.
Inoltre, in alcuni casi, il proxy è chiamato ad ottimizzare i contenuti trasferiti via HTTP/HTTPS. Può per esempio comprimere le risposte del server Web per ridurre la quantità di dati trasmessi e, ad esempio, eseguire la compressione delle immagini in modo che esse risultino più facili da gestire. Grazie a queste accortezze, la pagina viene erogata in tempi più brevi, le performance risultano complessivamente migliorate ed è possibile ottenere il favore di strumenti come Google PageSpeed Insights e Chrome Lighthouse.
Come risolvere l’errore 502 Bad Gateway
Trattandosi un di un errore 50x, anche il 502 Bad Gateway è di difficile risoluzione da parte dell’utente che si collega a un sito Web. Di solito l’errore 502 Bad Gateway è temporaneo ed è destinato a risolversi in breve tempo.
Talvolta è ascrivibile a un problema del proxy/gateway mentre il server di destinazione non evidenzia alcuna difficoltà. Nella pagina Cloudflare System Status sono riportati in tempo reale i problemi che possono provocare la comparsa dell’errore 502 sui client. Altri fornitori allestiscono dashboard simili.
Gli utenti più esperti possono provare a collegarsi al server Web di destinazione senza passare per il proxy. Cloudflare e simili non espongono l’indirizzo IP pubblico del server Web principale: così, digitando al prompt dei comandi il comando nslookup seguito dal nome a dominio, viene sempre restituito l’indirizzo del proxy.
Provate però a utilizzare servizi come ViewDNS.info IP history e IPhistory.ch. Digitando, nella casella di ricerca, il nome a dominio di proprio interesse, si riceve la lista degli indirizzi IP utilizzati nel corso del tempo. Si può provare a modificare il file HOSTS locale inserendo l’indirizzo IP antecedente all’utilizzo di Cloudflare.
Prendiamo l’esempio in figura. Come si vede, il sito Web in questione ad un certo punto è passato a usare Cloudflare come servizio proxing. Quello che si può provare a fare è intervenire sul file HOSTS specificando uno dei due IP pubblici indicati seguito dal nome a dominio completo.
Senza modificare HOSTS, si può risolvere un nome a dominio in modo diverso usando Chrome: basta passare al browser Google i parametri corretti.
Così facendo, si può scavalcare il proxy e verificare se si riuscisse a raggiungere il sito Web di destinazione bypassando anche l’errore 502 Bad Gateway.
Credit immagine in apertura: iStock.com/sdecoret