Artículos sobre: Amazon Marketplace (PrestaShop)

Error 524 de Cloudflare al ejecutar el cron (timeout)

La tarea cron está fallando debido a un error Cloudflare 524. Esto ocurre cuando una petición HTTP enviada a través de Cloudflare supera el tiempo máximo de ejecución permitido (normalmente entre 100 y 120 segundos en planes estándar).


Aunque la tarea programada se ejecute desde el servidor (crontab), si se realiza a través de una URL HTTP protegida por Cloudflare, la conexión se cortará antes de que el script termine de procesarse.


Referencia: Documentación de Cloudflare sobre el error 524



Por qué ocurre este problema


El error aparece porque:

  • El proceso es demasiado pesado (catálogo extenso, actualización de stock o alto volumen de pedidos).
  • Cloudflare aplica un límite de tiempo estricto en las peticiones HTTP bajo proxy.
  • El script PHP subyacente sigue ejecutándose en su servidor, pero Cloudflare corta la conexión HTTP de forma prematura.



Método 1: Ejecución mediante PHP CLI (Recomendado)


La solución más fiable es ejecutar la tarea cron directamente mediante PHP CLI (Línea de comandos) en lugar de usar una URL HTTP. El modo CLI omite por completo Cloudflare, los tiempos de espera del servidor web y las restricciones HTTP.


Comparativa


  • Versión HTTP (Provoca el error 524):

https://myshop.com/modules/amazon/functions/check_stock.php?cron_token=XXXX&mkp=XXXX&fix=1


  • Versión CLI (Recomendada):

/usr/bin/php /ruta/absoluta/de/su/prestashop/modules/amazon/functions/check_stock.php cron_token=XXXX mkp=XXXX fix=1


Instrucciones para el administrador del servidor / proveedor de hosting:

  1. Reemplazar la petición HTTP del cron en crontab por el comando PHP CLI.
  2. Indicar la ruta absoluta correcta al directorio de instalación de PrestaShop.
  3. Verificar la ruta exacta del binario PHP CLI en su servidor (ej.: /usr/bin/php, /usr/local/bin/php).


Nota sobre la sintaxis CLI: Los comandos CLI no utilizan URL https://. Los parámetros se separan por espacios en lugar de ? y &.



Método 2: Evitar Cloudflare mediante un subdominio sin proxy (Alternativa para crons HTTP)


Si su configuración requiere obligatoriamente la ejecución de crons mediante URL HTTP y no puede utilizar CLI, debe tener en cuenta que Cloudflare no permite desactivar sus reglas de proxy ("Nube naranja") para carpetas específicas dentro de un mismo dominio.


Para omitir Cloudflare en HTTP, el administrador de su servidor puede configurar un subdominio dedicado sin proxy:


Pasos de implementación:

  1. Crear un subdominio dedicado: Configure un host virtual o subdominio separado específicamente reservado para tareas administrativas (ej.: bo.myshop.com).
  2. Vincular el directorio: Apunte este subdominio directamente a su instalación de PrestaShop o cree un enlace simbólico / montaje bind de la carpeta requerida en la raíz del documento del subdominio.
  3. Desactivar el proxy de Cloudflare (Nube gris): En el panel de control DNS de Cloudflare, cambie el registro DNS de bo.myshop.com a DNS Only (icono de nube gris en lugar de nube naranja).
  4. Actualizar la URL del cron: Ejecute sus tareas cron HTTP utilizando la URL del subdominio sin proxy (ej.: https://bo.myshop.com/modules/amazon/functions/check_stock.php?...).


Advertencia de seguridad: Desactivar el proxy de Cloudflare (nube gris) en un subdominio expone la dirección IP real de su servidor a cualquiera que conozca dicho subdominio.



Método 3: Aumentar los límites de timeout en Cloudflare


Si dispone de un plan Cloudflare Enterprise, puede solicitar un aumento del límite de tiempo de espera HTTP directamente al soporte de Cloudflare. Sin embargo, por lo general no resulta una solución rentable ni viable para configuraciones de alojamiento estándar.



Recomendación final


Para catálogos grandes y sincronizaciones frecuentes, el Método 1 (PHP CLI) es la solución más estable y eficiente. Elimina por completo los límites de tiempo de Cloudflare y evita exponer la dirección IP real de su servidor.

Actualizado el: 04/08/2026

¿Este artículo te resultó útil?

Comparte tu opinión

Cancelar

¡Gracias!