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
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.
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 |
|---|---|---|
| Una solicitud HTTP de salida sin tiempo | La 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 ella | La 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 web | El 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ágina | El 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 trabajo | Todo 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. |
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.
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 10Pregú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
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
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
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'
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.
¿Debería aumentar el tiempo?
¿Por qué la misma página se carga bien a veces?
Mi importación se da en el mismo punto cada vez.
¿Es un 504 causado por la conexión de mis visitantes?
Si el problema era otro.
Estos errores pueden parecerse en el navegador.