Intentas visitar una web y aparece el mensaje de error "502 Bad Gateway". La página no carga y solo ves un mensaje de error. En esta guía detallada te explicamos qué significa exactamente un error 502, cuáles son sus posibles causas y cómo solucionarlo como visitante o como propietario de la web.

¿Qué es un error HTTP 502 Bad Gateway?

El código de estado HTTP 502 significa que un servidor que actúa como gateway o proxy ha recibido una respuesta no válida de un servidor upstream. Dicho de forma sencilla: entre tú y la web hay varios servidores, y la comunicación entre esos servidores ha fallado.

En una configuración típica de hosting web, funciona así:

  1. Tu navegador envía una solicitud al servidor web (Nginx o Apache)
  2. El servidor web reenvía la solicitud al servidor de aplicaciones (PHP-FPM)
  3. PHP-FPM procesa la página y devuelve el resultado al servidor web
  4. El servidor web envía la página a tu navegador

Un error 502 se produce cuando falla el paso 3: PHP-FPM se bloquea, da una respuesta no válida o no responde en absoluto. En ese caso, el servidor web (el gateway) no puede completar la solicitud.

Esto es distinto de un error 500 (error interno del servidor en PHP) o un error 503 (servidor sobrecargado). En un 502, el problema está concretamente en la comunicación entre dos servidores.

Variantes del error 502

El mensaje de error 502 puede aparecer de distintas formas. En cuanto veas el código 502, sabrás que esta guía te sirve.

Mensaje de errorDescripción
502 Bad GatewayVariante más frecuente
HTTP Error 502Mensaje de error HTTP estándar
502 Proxy ErrorVariante relacionada con el proxy
502 Server ErrorVariante abreviada
502 Bad Gateway - nginxVariante específica de Nginx
502 Bad Gateway - CloudflareVariante relacionada con la CDN
502. That's an error.Formato específico de Google
Bad Gateway: The proxy server received an invalid responseVariante extensa de Apache

Solucionar un error 502 como visitante

Como visitante tienes opciones limitadas, pero puedes probar lo siguiente:

  1. Recarga la página: pulsa F5 o Ctrl+R. Un error 502 suele ser temporal.
  2. Espera entre 30 segundos y un minuto: es posible que el servidor se reinicie automáticamente.
  3. Vacía la caché del navegador: a veces se muestra desde la caché una respuesta 502 antigua.
  4. Prueba otro DNS: cambia a Google DNS (8.8.8.8) o Cloudflare DNS (1.1.1.1).
  5. Consulta downdetector.nl: mira si otros usuarios informan del mismo problema.

Solucionar un error 502 como propietario de la web

¿Eres el propietario de la web? Sigue estos 8 pasos para encontrar la causa y solucionarla.

1. Comprueba si PHP-FPM está en marcha

La causa más frecuente de un error 502 es que PHP-FPM se haya bloqueado o ya no responda. Comprueba el estado:

sudo systemctl status php8.2-fpm

Si PHP-FPM se ha detenido, reinícialo:

sudo systemctl restart php8.2-fpm

En un hosting compartido no puedes reiniciar PHP-FPM directamente. En ese caso, ponte en contacto con tu proveedor de hosting o espera a que el servidor se recupere automáticamente.

2. Comprueba el registro de errores de Nginx o Apache

El registro de errores del servidor web te da información exacta sobre por qué ha fallado la solicitud:

# Registro de errores de Nginx
sudo tail -50 /var/log/nginx/error.log

# Registro de errores de Apache
sudo tail -50 /var/log/apache2/error.log

Busca líneas con "502" o "upstream": te indican exactamente qué servidor upstream no ha respondido y por qué.

Líneas de registro frecuentes:

upstream prematurely closed connection while reading response header
connect() to unix:/run/php/php8.2-fpm.sock failed (111: Connection refused)
upstream timed out (110: Connection timed out) while reading response header

3. Aumenta el tiempo de espera del proxy

Si tu web realiza operaciones pesadas (consultas grandes a la base de datos, procesamiento de imágenes, importaciones), puede que el servidor web no espere lo suficiente a PHP-FPM.

Configuración de Nginx:

proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
fastcgi_read_timeout 300;

Configuración de Apache:

ProxyTimeout 300
Timeout 300

Después de hacer los cambios, reinicia el servidor web:

sudo systemctl restart nginx   # o apache2

4. Comprueba la memoria de PHP y los límites de procesos

PHP-FPM puede bloquearse si tiene muy poca memoria o intenta ejecutar demasiados procesos:

Comprueba la configuración del pool de PHP-FPM:

# Normalmente en /etc/php/8.2/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

Si pm.max_children es demasiado bajo para tu tráfico, PHP-FPM no puede aceptar más solicitudes nuevas. Aumenta este valor o cambia a pm = ondemand si tu tráfico es variable.

Comprueba también en php.ini el límite de memoria de PHP:

memory_limit = 512M

5. Haz una prueba sin CDN ni proxy inverso

Si usas Cloudflare, Sucuri u otra CDN o proxy, el problema puede estar ahí:

  • Desactiva temporalmente la CDN (haz que las DNS apunten directamente a tu servidor)
  • Busca mensajes de error en el panel de la CDN
  • En Cloudflare: comprueba que el modo SSL sea correcto (Full o Full Strict)
  • Comprueba si tu web funciona a través de la dirección IP directa del servidor

Si tu web sí funciona sin la CDN, el problema está en la configuración de la CDN.

6. Comprueba los ajustes de DNS

Unos ajustes de DNS incorrectos pueden hacer que tu dominio apunte a un servidor equivocado, lo que provoca un error 502:

  • Comprueba que tu registro A apunta a la dirección IP correcta del servidor
  • Tras cambiar las DNS, espera 24-48 h hasta que se propaguen por completo
  • Usa dig example.nl o nslookup example.nl para comprobar tus DNS

7. Reinicia el servidor

Si reiniciar cada servicio por separado no ayuda, puede ser necesario reiniciar todo el servidor. Así se resuelven los problemas de procesos bloqueados, fugas de memoria o archivos temporales dañados.

En un VPS o servidor dedicado:

sudo systemctl restart nginx
sudo systemctl restart php8.2-fpm
sudo systemctl restart mysql

O un reinicio completo:

sudo reboot

En un hosting compartido: ponte en contacto con tu proveedor de hosting para que reinicie el servidor.

8. Comprobaciones específicas de WordPress

En las webs de WordPress pueden influir estas causas adicionales:

  • Plugins pesados: desactiva los plugins instalados o actualizados recientemente
  • Sobrecarga de WP-Cron: desactiva WP-Cron y usa una tarea cron real del servidor
  • Conflicto de la caché de objetos: si usas Redis o Memcached, comprueba que el servicio de caché esté en marcha
  • Heartbeat API: limita la Heartbeat API de WordPress con el plugin Heartbeat Control

Prevenir los errores 502

Con estas medidas reduces al mínimo la probabilidad de errores 502:

  • Supervisa tu servidor: configura la monitorización del tiempo de actividad con herramientas como UptimeRobot o Pingdom
  • Escala tu hosting: asegúrate de que tu plan de hosting tenga recursos suficientes para tu tráfico
  • Optimiza tu código: procura que las consultas a la base de datos sean eficientes y evita operaciones pesadas al cargar las páginas
  • Usa caché: una caché bien configurada (Redis, Varnish o caché de páginas) reduce la carga de PHP-FPM
  • Mantén el software actualizado: usa la versión más reciente de PHP y mantén al día tu CMS y tus plugins
  • Configura el reinicio automático: configura systemd para que reinicie PHP-FPM automáticamente tras un fallo

Preguntas frecuentes sobre el error 502

¿Qué significa exactamente HTTP 502 Bad Gateway?

Un error 502 Bad Gateway significa que un servidor intermedio (gateway o proxy) ha recibido una respuesta no válida o incompleta del servidor que tiene detrás. El problema no está en tu navegador ni en tu conexión, sino en la comunicación entre dos servidores. Lo habitual es que se trate de un servidor web (Nginx/Apache) que no recibe una respuesta válida de PHP-FPM.

¿Cuál es la diferencia entre un error 502 y un error 504?

En un error 502, el gateway recibe una respuesta no válida del servidor upstream. En un 504 Gateway Timeout, el gateway no recibe ninguna respuesta dentro del tiempo límite configurado. Un 502 indica un bloqueo o un fallo, y un 504, que se ha agotado el tiempo de espera. Las soluciones se solapan, pero en un 504 conviene sobre todo aumentar los ajustes de tiempo de espera.

¿Un error 502 puede deberse a mi proveedor de hosting?

Sí, en un hosting compartido un error 502 puede deberse a problemas del servidor sobre los que no tienes control. Si el problema persiste y has seguido todos los pasos, ponte en contacto con tu proveedor de hosting. Si los errores 502 se repiten, plantéate pasar a un VPS para tener más control y recursos dedicados.

¿Un error 502 afecta a mi SEO?

Un único error 502 de corta duración apenas afecta a tu SEO. Sin embargo, si Google se encuentra repetidamente con un 502 al rastrear tus páginas, puede reducir la frecuencia de rastreo y, con el tiempo, bajar tu posición en los resultados de búsqueda. Supervisa tu sitio con Google Search Console para enterarte enseguida de los problemas de rastreo.

¿Cuánto suele durar un error 502?

Depende de la causa. Si PHP-FPM se reinicia automáticamente, un error 502 puede resolverse en 30 segundos. Si se trata de problemas del servidor o errores de configuración, puede tardar más, hasta que intervenga el administrador. En los servidores bien configurados, los bloqueos de PHP-FPM se detectan y se reinician automáticamente, por lo que el tiempo de inactividad es mínimo.

¿Errores 502 frecuentes? Consulta nuestros planes de hosting web con LiteSpeed, NVMe SSD y una configuración estable de PHP-FPM. O elige un VPS con control total sobre la configuración de tu servidor.