NuevoBlack Friday: 50 % de descuento en tu primer pago
Solución de problemas de WordPress

504 Tiempo de salida de la puerta

PHP estaba trabajando cuando el servidor web dejó de esperar. Nada se estrelló - simplemente tomó más tiempo de lo que el tiempo permite.

504 Gateway Timeout

Respuesta breve

Algo en la solicitud es lento, y elevar el tiempo sólo significa esperar más tiempo para la misma página. Identificar el paso lento primero: una consulta, una llamada de API de salida, o una importación que se ejecuta dentro de una solicitud web.

Diagnóstico

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.

CausaCómo comprobarloSolución
Una solicitud HTTP de salida sin tiempoLa URL lenta llama a un tercero - un cheque de licencia, una alimentación, una puerta de pago. Es rápido cuando ese servicio es rápido.Establecer un tiempo explícito en la llamada y caché de salida la respuesta. WordPress espera mucho más por defecto que cualquier visitante lo hará.
Una consulta sin índice detrás de ellaLa página lenta es un archivo filtrado o un informe, y la base de datos muestra la misma consulta en la parte superior bajo carga.Añadir el índice las necesidades de la consulta. Un escaneo que estaba bien a diez mil filas es un tiempo de salida a un millón.
Importación o exportación que se ejecuta en una solicitud webEl tiempo de salida sólo ocurre en una acción de administración que comenzó, y falla en aproximadamente el mismo tiempo transcurrido cada intento.Mueva el trabajo a WP-CLI o una carrera de fondo recortada. Una pestaña del navegador es el lugar equivocado para el trabajo medido en minutos.
Cron apilándose en cargas de páginaEl retraso se encuentra en las URLs comunes de primera línea, esporádicamente, en un sitio con una lista de eventos atrasados.Desactivar WP-Cron y conducirlo desde el programador del sistema, por lo que el trabajo programado deja de ser cargado a cualquier visitante llega primero.
El tiempo libre es realmente demasiado corto para el trabajoTodo lo anterior se descarta y la operación es legítimamente larga - una gran copia de seguridad, una conversión de los medios grandes.El aumento de la velocidad para ese camino sólo. El aumento global elimina el techo que detiene una mala petición ocupando a un trabajador.
Guía

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.

  1. Averigüe qué URL es lenta

    El registro de acceso registra cuánto tiempo cada solicitud tomó. Ordenar por eso y la respuesta es generalmente una línea.

    awk '{print $NF, $7}' /var/log/nginx/access.log | sort -rn | head -n 10
  2. Pregúntele a la base de datos qué está pasando tiempo en

    Una consulta de larga duración aparece aquí mientras la página sigue cargando.

    mysql -e 'SHOW FULL PROCESSLIST;' | head -n 20
  3. Compruebe si el cron es el pasajero

    Una larga lista de retrasos significa que el trabajo programado está siendo dirigido por los visitantes.

    wp cron event list --status=due --fields=hook,next_run_relative
  4. Mover el largo trabajo fuera de la petición

    La misma importación que se hace en un navegador generalmente completa desde la línea de comandos, porque nada está esperando en ella.

    wp import large-file.xml --authors=create
  5. Sólo ahora, considere el tiempo libre

    Y elevarlo para el camino que lo necesita en lugar de en todas partes.

    wp config set WP_MAX_MEMORY_LIMIT '512M'
En MagicWP

De esto se encarga la plataforma.

El trabajo programado se ejecuta en un programador de sistema real en lugar de en cualquier persona que llega el visitante, por lo que la causa accidental más común de una página lenta está ausente desde el principio. Los trabajos largos tienen sus propios límites en el contexto del cron en lugar de tomar prestados los destinados a solicitudes web, y los contenedores por sitio significan una solicitud que hace mucho tiempo que ocupa a sus trabajadores solamente.

Preguntas frecuentes

Preguntas frecuentes.

¿Debería aumentar el tiempo?
Raramente, y nunca antes. Un tiempo más alto significa que el visitante espera más tiempo antes de ver el mismo fracaso, y elimina el techo que detiene una sola solicitud atar a un trabajador indefinidamente.
¿Por qué la misma página se carga bien a veces?
Debido a que el ingrediente lento no siempre es lento. Una API de terceros que tiene un mal minuto, o una consulta que está bien hasta que el caché esté frío, ambos producen una página que funciona hasta que no lo hace.
Mi importación se da en el mismo punto cada vez.
Es un límite en lugar de una coincidencia. Ejecutar de WP-CLI, o en pedazos que registran su posición, por lo que un recorrido interrumpido se reanudará en lugar de repetir.
¿Es un 504 causado por la conexión de mis visitantes?
No. Se genera entre el servidor web y PHP, ambos en el lado servidor. Un visitante con una conexión lenta ve una página lenta, no un 504.
Errores relacionados

Si el problema era otro.

Estos errores pueden parecerse en el navegador.