El codi d’estat de resposta HTTP 502 Bad Gateway indica que el teu servidor està darrere d’un servidor intermediari o “proxy” (per exemple, un CDN, un balancejador de càrrega “Load Balancer”, un tallafocs, etc.) i que aquest servidor intermediari no veu el teu servidor de continguts.
Per exemple, pots topar amb l’error si el teu CDN o Firewall no pot arribar al servidor web i per tant el contingut no es pot lliurar a l’usuari.
Pantalla d’error Bad Gateway de Cloudflare
Diferents missatges d’error 502
“Error 502 Bad gateway”
“Proxy Error. The proxy server received an invalid response from an upstream server.”
“502 Bad Gateway Nginx”
“HTTP 502”
“502 Service Temporarily Overloaded”
“502 Server Error: The server encountered a temporary error and could not complete your request”
“502. That’s an error. The server encountered a temporary error and could not complete your request”
“Temporary Error (502)”
502 Bad Gateway quan el lloc web o el servei està darrere dels proxies de Google.
A les seccions següents et mostrem les diferents causes i com corregir l’error en cada cas:
Causes de l’error 502 Bad Gateway
L’error 502 significa que el servei intermediari que actua com a porta d’enllaç té problemes per obtenir el contingut del teu servidor. Aquest servei intermediari “proxy” que tens davant del servidor de la teva web pot ser un CDN, un Load Balancer, un Firewall, etc.
Aquí tens una llista de totes les diferents causes:
Hi ha un problema de xarxa entre el servidor i el servei proxy.
El teu servidor està bloquejant l’accés al servei de servidor proxy.
El teu servidor està caigut.
El teu servidor està actiu però no pot gestionar més connexions.
Algunessol·licituds del servidor tenen problemes y retornen l’error.
Hi ha algún problema amb els DNS.
Com reparar el codi d’error 502 Bad Gateway
Pots seguir els passos següents per identificar la causa i corregir l’error 502:
1 Verifica que el teu servidor està en funcionament
Aquest és el primer pas que has de verificar. Inicia una sessió a la consola o entra al panell de gestió del teu servidor i verifica que tots els serveis web s’estiguin executant.
2 Verifica que es pot accedir al teu servidor
Deshabilita temporalment elservei de servidor intermediari proxy o evita’l forçant les zones DNS del teu domini.
Amb aquest mètode validem que el servidor funciona correctament i és capaç de servir les pàgines sense retornar errors.
Descrivim a continuació els dos mètodes:
Prova el teu servidor sense passar pel servei de servidor intermediari
Pots esquivar el servei de servidor intermediari, apuntant les zones DNS del teu domini web directament a la IP del teu servidor.
Pots forçar les zones DNS, modificant el fitxer host del teu ordinador.
Tens eines per ajudar-te com: SwitchHosts per a Mac OSX o HostsFileEditor per a Windows.
Prova el teu servidor desactivant el servei proxy intermediari
Com a alternativa per verificar si es pot accedir al teu servidor, pots desactivar temporalment el servei proxy: el CDN, Load Balancer, …
Si tens Cloudflare, pots desactivar-lo fàcilment des del panell d’administració:
Inicia sessió i
a la barra lateral dreta, localitza les Accions ràpides,
activa el Mode de desenvolupament “Development Mode”:
Habilita el mode de desenvolupament a Cloudflare per desactivar temporalment el servidor intermediari i servir pàgines directament des del teu servidor.
Verifica que el teu servidor es veu des de diverses xarxes i continents
Si tot està ok després de desactivar temporalment el servei proxy intermediari, el següent punt de control recomanat és verificar si es pot accedir a través de diferents xarxes i països.
Verifiqueu que la vostra web es vegi bé des de diferents punts de xarxa.
Aquesta eina Uptrends revisa la teva web des de diferents nodes de països. Si alguna verificació falla, estàs davant de possibles problemes de xarxa que probablement no estiguin sota el teu control.
3 Verifica la càrrega del teu servidor
Si el servidor web arriba als seus límits, no podra respondre a més sol·licituds i el servei proxy que tinguis al davant et retornarà el codi d’estat 502 Bad Gateway.
El motiu podria ser un interès inesperadament alt, un pic d’audiència o fins i tot un atac de DoS o DDoS (Distributed Denial of Service). Això vol dir que algú està utilitzant una xarxa de bots per ajudar a sobrecarregar la capacitat del servidor i provocar una falla del sistema.
És probable que el teu servei de servidor intermediari, CDN o Load Balancer, estigui preparat per gestionar volums elevats de trànsit, però això no vol dir que ho estigui el teu servidor web. Amb les webs WordPress, és tremendament fàcil sobrecarregar el servidor, ja que són moltes les pàgines amb temps de procés elevat i que no podem servir des de memòria cau.
La millor solució en cas de trànsit no legítim és estar protegit per un servei de CDN o Firewall capaç de filtrar el trànsit i amb infraestructura preparada per frenar els atacs DoS i DDoS.
Si el trànsit és legítim, les solucions són òbvies:
Afegeix un bon sistema de memòria cau “cache”, al teu website.
I si el sistema de memòria cau no és suficient, incrementa els recursos del vostre servidor.
Si econòmicament no podeu afrontar l’increment de recursos, l’opció final és alleugerir la vostra web. Si treballes amb WordPress, redueix la quantitat de plugins al mínim imprescindible.
4 Verifica els límits de recursos del teu hosting
Si la vostra web està en un allotjament compartit, verifiqueu que no esteu excedint els límits de recursos.
L’establiment de límits no és una cosa que puguis trobar entre les funcionalitats d’un “shared hosting”. Però tingueu en compte que per preservar la convivència entre tots els llocs d’un servidor compartit, és molt comú que el proveïdor estableixi límits en els temps de procés, en el nombre de “php workers” i en el trànsit.
5 Comprova l’estat del servei CDN o servidor intermediari
El problema d’accés a la xarxa podria ser un problema de xarxa del servei intermediari. Consulteu la “Pàgina d’estat” del servei del vostre proveïdor.
Aquesta és una llista de “Pàgines d’estat” dels principals proveïdors de serveis de Load Balancing, CDN i serveis de seguretat:
Si el vostre servidor web té un firewall local: “iptables”, “Uncomplicated Firewall – UFU”, “CSF Firewall”, “Fail2ban”, “FireHOL”, aleshores podria ser aquest firewall el que està bloquejant l’accés al teu servei de proxy.
Inspecciona el teu tallafocs.
En aquest exemple, iptables està bloquejant el trànsit de diferents adreces IP.
La millor solució, si el teu tallafocs ho permet, és afegir les adreces IP del teu proveïdor (CDN, Load Balancer,…) al sistema de llista blanca “whitelist”.
Per exemple, a Wetopi, fem servir i recomanem Cloudflare com a CDN i tallafocs de seguretat. Per a evitar problemes d’error “502 Bad Gateway”, els nostres tallafocs tenen la llista pública d’adreces IP de Cloudflare al sistema de la llista blanca “whitelist”.
7 Inspecciona els DNS
Si estàs en procés de publicar el teu domini o ho estàs modificant, el problema podria ser al DNS
Per corregir l’error 502 a causa d’un problema de DNS, seguiu aquesta llista de verificació:
Si acabes de migrar el teu lloc a un nou host, és important esperar que les zones DNS es propaguin del tot, cosa que es pot trigar fins a 24 hores en alguns casos. Això depèn del valor TTL dels teus registres DNS.
El nom de domini no es resol a la IP correcta o no es resol a cap IP. Verifica la definició de la teva zona DNS d’acord amb les instruccions proporcionades pel seu servei proxy: CDN, Load Balancer, Security Service, …
8 Revisa la teva base de dades
Si has arribat fins aquí i cap dels mètodes anteriors funciona, podria ser que l’error vinguès d’un problema a la teva web o aplicació, per a una pàgina o sol·licitud d’URL concreta.
Primer de tot, verificar l’estat de la base de dades:
cercar errors als fitxers de registre “logs”
repara i/o optimitza les taules i els índexs.
Aquesta imatge mostra com reparar les taules de la base de dades MariaDB/MySQL des del panell de phpMyAdmin.
9 Revisa el teu WordPress o aplicació
Si la base de dades està bé, la solució final per corregir l’error 502 per una pàgina web o URL en concret, és depurar l’aplicació o gestor de continguts.
Si el lloc web treballa amb WordPress, prova el següent:
deshabilita tots els plugins,
intenta reproduir l’error,
si el problema desapareix, llavors l’error 502 és causat per un plugin de WordPress.
Per no trencar la teva web producció durant les proves …
Clona el teu server producció i crea un entorn “staging” !!!