¿Qué es el Error 504 Gateway Timeout en PrestaShop?
El error 504 Gateway Timeout ocurre cuando un servidor que actúa como puerta de enlace o proxy no recibe una respuesta oportuna del servidor upstream al intentar completar una solicitud. En PrestaShop, este problema suele manifestarse al realizar importaciones masivas de productos, actualizar módulos pesados o durante procesos largos en el panel de administración y el proceso de pago.
Causas principales del Error 504 en PrestaShop
Identificar la raíz del problema es fundamental antes de aplicar cualquier solución técnica. Entre las causas más comunes se encuentran:
- Tiempos de espera (timeouts) configurados de forma muy estricta en Nginx o Apache.
- Límites insuficientes de ejecución de PHP (max_execution_time).
- Consultas SQL lentas o sobrecarga en la base de datos MySQL.
- Problemas de rendimiento en servidores con recursos limitados (CPU/RAM).
Método 1: Aumentar el tiempo límite de ejecución en PHP
Muchos procesos de PrestaShop superan el tiempo predeterminado de PHP. Para solucionarlo, debes modificar el archivo php.ini o la configuración de tu panel de control (como cPanel o Plesk):
- Accede a tu panel de hosting y busca la opción de configuración de PHP o el Administrador de Archivos.
- Localiza el archivo
php.inidentro del directorio raíz de tu PrestaShop. - Modifica o añade las siguientes directivas con valores más altos:
max_execution_time = 300
max_input_time = 300
memory_limit = 512MGuarda los cambios y reinicia el servicio PHP de tu servidor para aplicar las nuevas configuraciones.
Método 2: Configurar los timeouts en el servidor Web (Nginx o Apache)
Si tu servidor utiliza Nginx como proxy inverso frente a Apache, es muy probable que debas ampliar el tiempo de espera del proxy para evitar que corte la conexión prematuramente.
- Accede a la configuración de tu servidor Nginx (generalmente en
/etc/nginx/nginx.confo en el archivo de configuración de tu dominio). - Añade o incrementa los siguientes valores dentro del bloque
http,serverolocation:
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
fastcgi_send_timeout 600s;
fastcgi_read_timeout 600s;Guarda el archivo y recarga Nginx ejecutando el comando sudo systemctl reload nginx en tu terminal SSH.
Método 3: Optimizar la base de datos y limpiar la caché de PrestaShop
Una base de datos fragmentada o una acumulación excesiva de caché puede ralentizar las respuestas del servidor provocando el timeout.
- Entra a tu Backoffice de PrestaShop y ve a Parámetros avanzados > Rendimiento.
- Haz clic en el botón Borrar la caché ubicado en la esquina superior derecha.
- Accede a tu gestor de base de datos (phpMyAdmin), selecciona todas las tablas de tu tienda y utiliza la opción Optimizar la tabla para mejorar el rendimiento de las consultas SQL.