502 Bad Gateway
El servidor web alcanzó PHP y PHP no respondió. Nginx o Apache está informando de una conversación que terminó antes de que empezara.
502 Bad Gateway
PHP-FPM está o bien abajo o sus trabajadores están ocupados. Compruebe si el proceso está funcionando antes de cualquier otra cosa - una piscina parada y una piscina saturada producen la misma página y necesitan diferentes correcciones.
Las causas más probables primero.
Revisa la lista en orden. Cada comprobación permite confirmar o descartar una causa antes de hacer cambios: las soluciones son distintas y adivinar cuesta más que ejecutar un comando.
| Causa | Cómo comprobarlo | Solución |
|---|---|---|
| PHP-FPM no está funcionando | El estado de servicio dice inactivo o falló. El registro del servidor web dice "conexión() falló" o "no vivo aguas arriba". | Comience, luego lea por qué se detuvo. Una piscina que salió por su cuenta lo hizo generalmente porque la máquina se quedó sin memoria. |
| Cada trabajador está ocupado | El grupo de procesos está activo. Los errores 502 llegan en ráfagas cuando aumenta el tráfico, y el registro indica que el servidor de origen agotó el tiempo de espera, en lugar de rechazar la conexión. | Encuentra la solicitud lenta que ocupa a los trabajadores. Añadiendo trabajadores a una piscina con hambre por un punto final lento compra minutos, no una solución. |
| El camino de toma o el puerto está equivocado | Cada solicitud 502s, consistentemente, incluyendo URLs de aspecto estático que se dirigen a través de PHP. El registro nombra un socket que no existe. | Apunte el servidor web en el socket que la piscina realmente escucha. Esto aparece justo después de un cambio de versión PHP. |
| Un trabajador se estrelló a mitad de la conquista | El registro PHP-FPM registra un segfault o un niño saliendo en una señal, con el tiempo a la solicitud. | Identificar la extensión implicada. Un segfault es raramente código de WordPress - es generalmente una sesión de extensión nativa entrada que no esperaba. |
| Un proxy delante es el momento de salir | El origen sirve a la página bien cuando se solicita directamente, y sólo la URL pública 502s. | Elevar el tiempo de lectura del proxy, o hacer la respuesta lenta más rápido. El origen no es la cosa para cambiar aquí. |
Solución paso a paso.
Los comandos requieren WP-CLI y acceso a la consola. Si no los tienes, cada paso explica cómo hacer lo mismo desde el panel o por SFTP.
Pregunte si PHP está funcionando en absoluto
Esta respuesta elimina la mitad de las posibilidades.
systemctl status php8.5-fpm --no-pager | head -n 12
Lea el registro del servidor web para la reclamación de la subida exacta
"La connección se negó" y "regreso temporal" significa diferentes cosas y punto en diferentes secciones arriba.
grep -E 'upstream|502' /var/log/nginx/error.log | tail -n 20
Mira el registro PHP-FPM para los accidentes
Sale en una señal, y advierte que todos los niños están ocupados, ambos viven aquí.
tail -n 40 /var/log/php8.5-fpm.log
Vea lo que los trabajadores están haciendo
Si todos están ocupados por la misma URL, usted ha encontrado el punto final lento.
wp cron event list --fields=hook,next_run_relative --status=due
Reinicie la piscina una vez que sepa por qué
Un reinicio aclara el síntoma. Hacerlo sin leer el registro significa hacerlo de nuevo mañana.
systemctl restart php8.5-fpm
De esto se encarga la plataforma.
Cada sitio tiene su propia piscina PHP-FPM en su propio contenedor con su propio límite de memoria, por lo que un sitio que agota a sus trabajadores no puede 502 de nadie más - el fracaso se queda donde comenzó. Los servicios de arranque es un botón en lugar de una sesión de SSH, y porque la piscina es tamaño con el plan en lugar de compartir en toda una máquina, un vecino ocupado no es una de las causas en esta lista.
Preguntas frecuentes.
¿Es un 502 mi culpa o el host?
¿Por qué restar PHP lo arregla por un tiempo?
¿Puede un solo plugin causar un 502 en todo el sitio?
¿Cómo es diferente a un 504?
Si el problema era otro.
Estos errores pueden parecerse en el navegador.