El código de estado de respuesta HTTP 502 Bad Gateway indica que tu servidor está detrás de un proxy (por ejemplo, un CDN, un balanceador de carga «Load Balancer», un cortafuegos, etc.) y que ese proxy no ve tu servidor de contenidos. Por ejemplo, puedes dar con el error 502 si tu CDN o Firewall no puede llegar al servidor web y por consiguiente el contenido no se puede entregar al usuario.
Pantalla de error Bad Gateway de Cloudflare
Diferentes mensajes de 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 cuando el sitio web o el servicio está detrás de los proxies de Google.
Las siguientes secciones muestran las distintas causas y cómo corregir el error en cada caso:
Causas del error 502 Bad Gateway
El error 502 significa que el servicio proxy que actúa como puerta de enlace tiene problemas para obtener el contenido de tu servidor. Este servicio proxy que tienes delante del servidor de tu web puede ser un CDN, un Load Balancer, un Firewall, etc.
Aquí tienes una lista de todas las diferentes causas:
Hay un problema de red entre tu servidor y tu servicio proxy.
Tu servidor está bloqueando el acceso al servicio de proxy.
Tu servidor está caído.
Tu servidor está activo pero no puede manejar más conexiones.
Algunassolicitudes del servidor devuelven un error.
Hay una zona DNS no válida o incorrecta.
Cómo reparar el código de error 502 Bad Gateway
Puede seguir los siguientes pasos para identificar la causa y corregir el error 502:
1 Verifica que tu servidor está en funcionamiento
Este es el primer paso que tienes que verificar. Inicia una sesión en la consola o entra al panel de gestión de tu servidor y verifica que todos los servicios web se estén ejecutando.
2 Verifica que se puede acceder a tu servidor
Deshabilita temporalmente elservicio de proxy o evítalo forzando las zonas DNS de tu dominio. Con este método validamos que tu servidor funciona correctamente y es capaz de servir páginas sin arrojar errores.
Describimos a continuación los dos métodos:
Prueba tu servidor sin pasar por el servicio de proxy
Puedes esquivar el servicio de proxy, apuntando las zonas DNS de tu dominio web directamente a la IP de tu servidor.
Puedes forzar las zonas DNS, modificando el fichero host de tu ordenador.
Tienes herramientas para ayudarte como: SwitchHosts para Mac OSX o HostsFileEditor para Windows.
Prueba tu servidor deshabilitando el servicio de proxy
Como alternativa para verificar si se puede acceder a tu servidor, puedes deshabilitar temporalmente el servicio de proxy.
Si está utilizando Cloudflare, puede deshabilitarlo fácilmente desde el panel de administración:
Inicia sesión y
en la barra lateral derecha, localiza las Acciones rápidas,
activa el Modo de desarrollo «Development Mode»:
Habilita el modo de desarrollo en Cloudflare para desactivar temporalmente el proxy y servir páginas directamente desde tu servidor.
Verifica que tu servidor se ve desde varias redes y continentes
Si todo está ok tras deshabilitar temporalmente el servicio de proxy, el siguiente punto de control recomendado es verificar si se puede acceder a este servidor a través de diferentes redes y países.
Verifique que tu web se vea bien desde diferentes puntos de red.
Esta herramienta Uptrends revisa tu web desde diferentes nodos de países. Si alguna verificación falla, estas ante posibles problemas de red que probablemente no estén bajo tu control.
3 Verifica la carga de tu servidor
Si el servidor web alcanza sus límites, no podrá responder a más solicitudes y el servicio proxy que tengas delante te devolverá el código de estado 502 Bad Gateway.
El motivo podría ser un interés inesperadamente alto, un pico de audiencia o incluso un ataque DoS o DDoS (Distributed Denial of Service). Esto significa que alguien está utilizando una red de bots para ayudar a sobrecargar la capacidad del servidor y provocar una falla del sistema.
Es probable que tu servicio de proxy, CDN o Load Balancer, esté preparado para manejar volúmenes elevados de tráfico, pero eso no implica que lo esté tu servidor web. Con las webs WordPress es tremendamente fácil sobrecargar el servidor, pues son muchas las páginas con tiempo de proceso elevado y que no podemos servir desde caché.
La mejor solución en caso de tráfico no legítimo es estar protegido por un servicio de CDN o Firewall capaz de filtrar el tráfico y con infraestructura preparada para frenar los ataques DoS y DDoS.
Si el tráfico es legítimo, las soluciones son obvias:
Añade un buen sistema de caché a tu website.
Y si el sistema de caché no es suficiente, incrementa los recursos de tu servidor.
Si económicamente no puedes afrontar el incremento de recursos, la opción final es aligerar tu web. Si trabajas con WordPress, reduce la cantidad de plugins al mínimo imprescindible.
4 Verifica los límites de recursos de tu hosting
Si tu web está en un alojamiento compartido, verifica que no estés excediendo los límites de recursos.
El establecimiento de límites no es algo que puedas encontrar entre las funcionalidades de un «shared hosting». Pero ten en cuenta que para preservar la convivencia entre todos los sitios de un servidor compartido, es muy común que el proveedor establezca límites en los tiempos de proceso, en el número de «php workers» y en el tráfico.
5 Comprueba el estado del servicio CDN o proxy
El problema de acceso a la red podría ser un problema de red del servicio de proxy. Consulta la «Página de estado» del servicio de tu proveedor.
Esta es una lista de «Páginas de estado» de los principales proveedores de servicios de Load Balancing, CDN y servicios de seguridad:
Si tu servidor web tiene un firewall local: «iptables», «Uncomplicated Firewall – UFU», «CSF Firewall», «Fail2ban», «FireHOL», entonces podría ser éste firewall el que está bloqueando el acceso a tu servicio de proxy.
Inspecciona tu cortafuegos.
En este ejemplo, iptables está bloqueando el tráfico de diferentes direcciones IP.
La mejor solución, si tu cortafuegos lo permite, es agregar las direcciones IP de tu proveedor (CDN, Load Balancer,… ) al sistema de lista blanca «whitelist».
Por ejemplo, en Wetopi, usamos y recomendamos Cloudflare como CDN y proxy inverso de seguridad. Para evitar problemas de error «502 Bad Gateway», nuestros firewalls tienen la lista pública de direcciones IP de Cloudflare en el sistema de la lista blanca «whitelist».
7 Inspecciona los DNS
Si estás en proceso de publicar tu dominio o lo estás modificando, el problema podría estar en el DNS
Para corregir el error 502 debido a un problema de DNS, sigue esta lista de verificación:
Si acabas de migrar tu sitio a un nuevo host, es importante esperar a que las zonas DNS se propaguen por completo, lo que puede demorarse hasta 24 horas en algunos casos. Esto depende del valor TTL de tus registros DNS.
El nombre de dominio no se resuelve en la IP correcta o no se resuelve en ninguna IP. Verifica la definición de tu zona DNS de acuerdo con las instrucciones proporcionadas por su servicio de proxy: CDN, Load Balancer, Security Service, …
8 Revisa tu base de datos
Si llegaste hasta aquí y ninguno de los métodos anteriores funciona, podría ser que el error se debiera a un problema en tu web o aplicación, pero en una página específica o solicitud de URL.
Lo primero, verificar el estado de la base de datos:
buscar errores en los archivos de registro
repara y/o optimiza las tablas e índices.
Esta imagen muestra cómo reparar las tablas de la base de datos MariaDB/MySQL desde el panel de phpMyAdmin.
9 Revisa tu WordPress o aplicación
Si la base de datos está bien, la solución final para corregir el error 502 en una página web o URL específica es depurar tu aplicación o gestor de contenidos.
Si su sitio web trabaja con WordPress, prueba lo siguiente:
deshabilita todos los plugin,
intenta reproducir el error,
si el problema desaparece, entonces el error 502 es causado por un plugin de WordPress.