Un error 502 Bad Gateway en WordPress significa que el servidor recibió una respuesta inválida de un servidor upstream, generalmente PHP-FPM bloqueándose o siendo abrumado, o un timeout de pasarela.
Causas más comunes que diagnosticamos:
Proceso sistemático, rápido y seguro:
Ejecuta: systemctl status php-fpm y verifica /var/log/php-fpm/error.log en busca de mensajes "server reached pm.max_children" o de bloqueo.
En nginx.conf o la configuración del sitio, añade: fastcgi_read_timeout 300; proxy_read_timeout 300;
Edita /etc/php-fpm.d/www.conf: aumenta pm.max_children para manejar más solicitudes concurrentes.
Nuestro experto WordPress responde en minutos.
502 Bad Gateway significa que el servidor obtuvo una respuesta inválida del upstream. 504 Gateway Timeout significa que el upstream tardó demasiado en responder.
Los errores 502 intermitentes suelen significar que tu pool de PHP-FPM se queda ocasionalmente sin workers durante los picos de tráfico: un problema de escalabilidad, no un error de código.
500: error del servidor en tu aplicación. 502: bad gateway — el proxy recibió una respuesta inválida del upstream. 503: servicio no disponible. 504: gateway timeout — el proxy esperó demasiado por el upstream. 502 y 504 son los más comunes con setups WordPress/Nginx.
Las páginas pesadas (listas admin con muchos registros, importación de datos, generación de reportes) toman más que el timeout de PHP-FPM (default 30 segundos). El proxy timea y devuelve 502. Subimos timeouts fastcgi y optimizamos la consulta lenta.
Sí. Si nginx está configurado para hablar con PHP-FPM en una ruta de socket equivocada (ej /var/run/php-fpm.sock que ya no existe), cada petición devuelve 502. Verificamos que la dirección listen real de PHP-FPM coincida con el fastcgi_pass de nginx.
Causas comunes: segmentation fault PHP (raro, usualmente de una extensión con bugs), PHP-FPM golpeando el límite pm.max_children y rechazando conexiones, o PHP-FPM quedándose sin memoria y siendo killed por OOM killer.
Edita /etc/php/8.x/fpm/pool.d/www.conf y aumenta pm.max_children basado en la RAM de tu servidor. Cada worker PHP típicamente necesita 64-128MB. Servidor con 8GB RAM y 100MB por worker = 60-70 workers seguros.
Tal vez — pero usualmente mueve el problema en lugar de resolverlo. Apache mod_php es más simple pero usa más memoria por petición. Diagnosticamos el cuello de botella real primero en lugar de cambiar arquitecturas.
Sí. PHP esperando por MySQL excede el timeout del proxy. Identificamos consultas lentas vía slow_query_log, añadimos índices, y o optimizamos la consulta o implementamos caché.
Los procesos en segundo plano pueden disparar uso de recursos: cron jobs, plugins de backup, regeneración de imágenes. Revisamos los tiempos de ocurrencias de 502 contra tareas programadas para encontrar el disparador.
Cloudflare no cachea errores 5xx por defecto, pero si tienes reglas de caché agresivas incluyendo 5xx, sí. Siempre configuramos reglas de caché apropiadas excluyendo respuestas de error.
Mira tus logs de acceso vs logs de error: si el 502 aparece en log de error Y log de acceso, es de tu nginx/Apache. Si solo en log de acceso con status=502, probablemente es de un CDN o load balancer encima. Traza las capas cuidadosamente.
Sí. Sobrecargas de hosting compartido, ataques DDOS afectando el data center, o problemas de backbone pueden causar 502s esporádicos. Podemos identificar esto vía patrones de monitoreo de uptime coincidiendo con la página de estado del host.
Frecuentemente sí. PHP 8.x tiene menor uso de memoria y ejecución más rápida, reduciendo la chance de timeouts y agotamiento de workers. Probamos compatibilidad antes de recomendar cambios de versión PHP.
Configuramos: monitoreo de uptime (UptimeRobot, BetterStack) con alertas de estado HTTP, parsing de logs con alertas en frecuencia de 502, y Application Performance Monitoring (New Relic, Datadog) para salud del upstream.
¿Tu sitio WordPress de repente lento? Diagnosticamos cuellos de botella y restauramos tu velocidad.
Respuesta en minutos. Sin pérdida de datos. Sin cargo por diagnóstico.
wpfix.blimx.com