Cómo Solucionar el Error 504 Gateway Timeout en PrestaShop de Forma Definitiva

Cómo Solucionar el Error 504 Gateway Timeout en PrestaShop de Forma Definitiva
Anuncio relacionado

¿Qué es el Error 504 Gateway Timeout en PrestaShop?

El error 504 Gateway Timeout es uno de los problemas más frustrantes a los que se enfrentan los administradores de tiendas online. Ocurre cuando un servidor que actúa como puerta de enlace o proxy no recibe una respuesta a tiempo de otro servidor al que intentaba acceder para completar la solicitud del cliente. En PrestaShop, esto suele suceder durante procesos pesados como la importación masiva de productos, la generación de la sitemap, o al realizar consultas complejas en bases de datos muy grandes.

Principales Causas del Error 504

Comprender el origen del problema es fundamental para aplicar la solución correcta. Las causas más comunes incluyen:

  • Límites de tiempo de espera (timeout) demasiado bajos en servidores web como Nginx o Apache.
  • Configuraciones de PHP-FPM restrictivas con tiempos de ejecución (max_execution_time) insuficientes.
  • Consultas SQL lentas o pesadas que saturan la base de datos MySQL o MariaDB.
  • Problemas temporales o congestión en el servidor proxy inverso (como Varnish o Cloudflare).

Método 1: Aumentar el Timeout en Nginx y PHP-FPM

Si tu servidor utiliza Nginx junto con PHP-FPM, es muy probable que debas ampliar los límites de tiempo de espera en los archivos de configuración.

  1. Accede a tu servidor mediante SSH con permisos de administrador.
  2. Abre el archivo de configuración de tu sitio en Nginx, por lo general ubicado en /etc/nginx/sites-available/tu-tienda.com.
  3. Agrega o modifica las siguientes directivas dentro del bloque location ~ \.php$:

fastcgi_read_timeout 300;
proxy_read_timeout 300;
proxy_connect_timeout 300;

A continuación, edita el archivo de configuración de PHP-FPM (php.ini) para aumentar el tiempo máximo de ejecución:

max_execution_time = 300

Finalmente, reinicia los servicios para aplicar los cambios ejecutando sudo systemctl restart nginx y sudo systemctl restart php-fpm.

Método 2: Optimizar la Base de Datos desde phpMyAdmin

Las consultas ineficientes o tablas fragmentadas pueden bloquear el servidor y provocar el tiempo de espera agotado.

  1. Entra a phpMyAdmin desde el panel de control de tu hosting.
  2. Selecciona la base de datos de tu PrestaShop.
  3. Selecciona todas las tablas de la lista y, en el menú desplegable inferior, elige Optimizar la tabla.
  4. Revisa si hay tablas colgadas bloqueadas (procesos largos) utilizando la orden SHOW PROCESSLIST; en la pestaña SQL.

Método 3: Desactivar Temporalmente Módulos Pesados

A veces, módulos de terceros mal optimizados intentan realizar tareas en segundo plano que superan el tiempo límite establecido.

  1. Accede al backoffice de tu PrestaShop (si tienes acceso) o directamente vía FTP a la carpeta /modules/.
  2. Desactiva los módulos añadidos recientemente o aquellos relacionados con estadísticas, marketing y pasarelas de pago.
  3. Comprueba si el error desaparece al repetir la acción que generaba el fallo. Si se soluciona, contacta con el desarrollador del módulo o manténlo desactivado.
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Magento

Cómo Solucionar el Error de Excepción NotSupportedException en Magento 2 con Redis Definitivamente

Soluciona de forma definitiva el error NotSupportedException relacionado con Redis en Magento 2. Sigue nuestra guía experta paso a paso.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error CORS (Cross-Origin Resource Sharing) en JavaScript de Forma Definitiva

Descubre las causas principales del bloqueo por políticas de origen cruzado en aplicaciones web y aplica soluciones definitivas con cabeceras HTTP y Proxies.

Leer guía completa →
Apps

Cómo Solucionar el Error ERR_CACHE_MISS en Google Chrome Definitivamente

¿Te aparece el mensaje Confirma el reenvío del formulario al navegar? Aprende a solucionar el error ERR_CACHE_MISS en Google Chrome de forma rápida y sencilla.

Leer guía completa →