Error 504 Gateway Timeout: Qué es y cómo solucionarlo
Un error 504 Gateway Timeout es un código de estado HTTP que ocurre cuando un servidor no recibe una respuesta oportuna de otro servidor mientras procesa una solicitud. En términos prácticos, significa que el servidor upstream está tardando demasiado en responder, lo que hace que la puerta de enlace o proxy abandone y devuelva un error al usuario final.
Esta guía completa explica exactamente qué es un error 504 Gateway Timeout, qué lo causa y — lo más importante — cómo solucionarlo, ya sea que seas un visitante regular o un administrador de servidor responsable de mantener un sitio en línea.
¿Qué es un error 504 Gateway Timeout?
Cuando un servidor actúa como puerta de enlace o proxy inverso — reenviando solicitudes a un servidor upstream — espera una respuesta dentro de un período de tiempo definido. Si ese servidor upstream no responde a tiempo, la puerta de enlace devuelve un código de estado 504 al cliente.
Esto es distinto de un 502 Bad Gateway (que indica una respuesta no válida) o un 503 Service Unavailable (que señala que el servidor está temporalmente inactivo). Un 504 significa específicamente que la puerta de enlace *agotó el tiempo de espera* esperando una respuesta válida.
Variaciones comunes del mensaje de error
Dependiendo del software del servidor, el navegador o el CDN en uso, es posible que veas este error mostrado como:
504 Gateway TimeoutHTTP Error 504Gateway Timeout ErrorError 504: Gateway Timeout504 Gateway Time-out*(común en Nginx)*A 504 error occurred*(común en entornos Cloudflare)*
Independientemente de la redacción, todos estos apuntan al mismo problema raíz: un tiempo de espera agotado en la comunicación entre servidores.
Causas comunes de un error 504 Gateway Timeout
El error 504 es casi siempre un problema del lado del servidor, lo que significa que se origina en la infraestructura en lugar de en el navegador o dispositivo del usuario. Comprender la causa raíz es esencial para aplicar la solución correcta.
1. Sobrecarga del servidor
Cuando un servidor se ve abrumado por un aumento repentino de tráfico o un número excesivo de solicitudes simultáneas, puede ser incapaz de procesar y responder dentro del período de tiempo de espera configurado. Esta es una de las causas más frecuentes de errores 504 en sitios web con mucho tráfico.
Señales a buscar: Uso elevado de CPU, agotamiento de memoria, largas colas de solicitudes en los registros del servidor.
2. Problemas de conectividad de red entre servidores
El problema puede no estar en ninguno de los servidores individualmente, sino en la ruta de red entre ellos. La pérdida de paquetes, los fallos de enrutamiento o los picos de latencia entre la puerta de enlace y el servidor upstream pueden desencadenar un tiempo de espera agotado.
Señales a buscar: Errores intermitentes, errores que se correlacionan con regiones geográficas o centros de datos específicos.
3. Problemas de resolución DNS
Si los registros DNS están mal configurados, desactualizados o no se han propagado completamente después de una migración de servidor, la puerta de enlace puede no resolver la dirección del servidor upstream — resultando en un tiempo de espera agotado antes de que se establezca una conexión.
Señales a buscar: Errores 504 que aparecen inmediatamente después de una transferencia de dominio o migración de servidor.
4. Firewalls mal configurados o demasiado restrictivos
Los firewalls demasiado agresivos pueden descartar silenciosamente paquetes entre servidores, impidiendo que la respuesta del servidor upstream llegue a la puerta de enlace. Este es un problema común en entornos de servidor reforzados donde las reglas del firewall no se han actualizado para tener en cuenta las nuevas rutas de comunicación entre servidores.
Señales a buscar: Errores 504 que solo afectan a tipos de solicitudes o rangos de IP específicos.
5. Configuración incorrecta del servidor proxy o CDN
Si tu sitio web enruta el tráfico a través de un servidor proxy o Red de Distribución de Contenido (CDN) como Cloudflare, Sucuri o Fastly, cualquier configuración incorrecta o retraso en esa capa puede producir un error 504 antes de que la solicitud llegue siquiera a tu servidor de origen.
Señales a buscar: Errores 504 que desaparecen cuando se omite el CDN.
6. Aplicaciones upstream lentas o que no responden
Si tu servidor depende de una API externa, base de datos o microservicio que tarda demasiado en responder, la puerta de enlace agotará el tiempo de espera esperando el resultado. Esto es cada vez más común en arquitecturas web modernas que dependen de integraciones de terceros.
Señales a buscar: Errores 504 que se correlacionan con páginas o funciones específicas que dependen de fuentes de datos externas.
7. Configuraciones de tiempo de espera demasiado cortas
A veces el proceso upstream funciona correctamente pero simplemente tarda más de lo que permite el tiempo de espera configurado del servidor. Si proxy_read_timeout u otras directivas similares están configuradas de forma demasiado conservadora, las solicitudes legítimas se interrumpirán prematuramente.
Cómo solucionar un error 504 Gateway Timeout
La solución adecuada depende de si eres un visitante que encuentra el error o un administrador de servidor responsable de la infraestructura afectada.
Para visitantes: pasos rápidos de solución de problemas
Si eres un usuario regular que ve un error 504, el problema casi con certeza se encuentra en el lado del servidor — pero hay algunas cosas que puedes intentar:
#### 1. Actualizar la página
Presiona F5 o haz clic en el botón de recarga del navegador. Si el servidor estaba momentáneamente sobrecargado, una simple actualización puede tener éxito una vez que disminuya la carga.
#### 2. Actualización forzada
Intenta una actualización forzada (Ctrl+Shift+R en Windows/Linux, Cmd+Shift+R en macOS) para omitir la caché del navegador y forzar una nueva solicitud al servidor.
#### 3. Borrar caché y cookies del navegador
Los datos en caché obsoletos pueden ocasionalmente interferir con la comunicación del servidor. Borra la caché y las cookies de tu navegador a través de Configuración → Privacidad y seguridad, luego vuelve a intentarlo.
#### 4. Verificar tu conexión a Internet
Verifica que tu propia conexión sea estable. Una conexión inestable puede a veces impedir la comunicación adecuada con el servidor, agravando un problema de tiempo de espera existente.
#### 5. Probar con una red o dispositivo diferente
Cambia a datos móviles o a una red Wi-Fi diferente. Si el error desaparece, el problema puede estar relacionado con tu ISP o la configuración de red local en lugar del servidor en sí.
#### 6. Esperar y volver a intentarlo
Los errores 504 son frecuentemente transitorios. Si el servidor está bajo carga temporal, esperar 5–10 minutos y volver a intentarlo suele ser el curso de acción más efectivo.
Para administradores de servidor: soluciones detalladas
Si administras el servidor o sitio web que experimenta errores 504, se requiere un enfoque más sistemático.
#### 1. Verificar la utilización de recursos del servidor
Comienza revisando el consumo actual de recursos de tu servidor. El uso elevado de CPU, el agotamiento de memoria o un disco lleno pueden impedir que el servidor procese solicitudes a tiempo.
# Check CPU and memory usage
top
htop
# Check disk usage
df -h
# Review recent system logs
tail -f /var/log/syslog
journalctl -xeSolución: Si tu servidor está constantemente bajo una carga pesada, considera actualizar a un plan más potente. El Hosting VPS de AlexHost proporciona recursos escalables que pueden ajustarse a medida que crece tu tráfico, mientras que los Servidores Dedicados ofrecen el máximo rendimiento para entornos de alta demanda.
#### 2. Reiniciar el servidor web y los servicios de aplicaciones
Un reinicio controlado de tu proceso de servidor web puede limpiar los workers bloqueados, liberar memoria y resolver problemas transitorios.
# Restart Nginx
sudo systemctl restart nginx
# Restart Apache
sudo systemctl restart apache2
# Restart PHP-FPM (if applicable)
sudo systemctl restart php8.1-fpmImportante: Siempre verifica los registros antes y después de reiniciar para confirmar si el reinicio resolvió el problema.
#### 3. Aumentar los límites de tiempo de espera del servidor
Si las solicitudes legítimas se interrumpen porque tardan más de lo que permite el tiempo de espera predeterminado, aumenta las directivas de tiempo de espera relevantes en la configuración de tu servidor.
Para Nginx (/etc/nginx/nginx.conf o el bloque de servidor de tu sitio):
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;Para Apache (/etc/apache2/apache2.conf o .htaccess):
Timeout 300
ProxyTimeout 300Para PHP-FPM (/etc/php/8.1/fpm/pool.d/www.conf):
request_terminate_timeout = 300Después de realizar cambios, siempre recarga o reinicia el servicio:
sudo nginx -t && sudo systemctl reload nginx
# or
sudo apachectl configtest && sudo systemctl reload apache2#### 4. Investigar y resolver problemas de DNS
Si el error 504 apareció después de una migración de servidor, transferencia de dominio o cambio de registro DNS, es posible que la propagación DNS esté incompleta o que los registros apunten al servidor incorrecto.
Pasos para diagnosticar:
# Check current DNS resolution
dig yourdomain.com
nslookup yourdomain.com
# Check from a specific DNS server
dig @8.8.8.8 yourdomain.comUsa una herramienta en línea como DNS Checker para verificar el estado de propagación global.
Solución: Asegúrate de que tus registros A y CNAME apunten a la dirección IP correcta. Si recientemente registraste o transferiste un dominio, permite hasta 48 horas para la propagación completa. El servicio de Registro de Dominios de AlexHost incluye herramientas de gestión DNS para ayudarte a mantener los registros precisos y actualizados.
#### 5. Revisar las reglas del firewall y la configuración de seguridad
Un firewall que bloquea la comunicación entre servidores es una causa común pero frecuentemente ignorada de los errores 504. Verifica los registros de tu firewall en busca de conexiones descartadas o rechazadas.
# Check UFW logs (Ubuntu/Debian)
sudo ufw status verbose
sudo tail -f /var/log/ufw.log
# Check iptables rules
sudo iptables -L -n -v
# Check firewalld (CentOS/RHEL)
sudo firewall-cmd --list-allSolución: Identifica cualquier regla que pueda estar bloqueando el tráfico entre tu puerta de enlace y los servidores upstream, y actualízalas para permitir la comunicación requerida. Ten cuidado de no abrir puertos innecesariamente — aplica el principio de mínimo privilegio.
#### 6. Depurar la configuración del proxy y CDN
Si tu sitio usa un proxy inverso (como Nginx actuando como proxy para una aplicación Node.js o Python) o un CDN, verifica que la configuración del proxy sea correcta y que el servidor de origen sea accesible.
Para el proxy inverso de Nginx, verifica el bloque upstream:
upstream backend {
server 127.0.0.1:3000;
keepalive 32;
}
server {
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_read_timeout 300;
}
}Para errores 504 relacionados con CDN:
- Temporalmente omite el CDN accediendo al sitio directamente a través de su dirección IP para determinar si el CDN o el servidor de origen es la fuente del problema.
- Revisa la configuración de tiempo de espera de origen del CDN — muchos CDN tienen sus propios valores de tiempo de espera configurables que deben alinearse con la configuración de tu servidor.
- Verifica la página de estado del CDN para detectar cualquier incidente en curso.
#### 7. Optimizar consultas lentas de base de datos y código de aplicación
Si el error 504 es causado por una aplicación upstream lenta — como una consulta de base de datos que tarda demasiado — la solución radica en la optimización a nivel de aplicación en lugar de la configuración del servidor.
Pasos para investigar:
- Habilita el registro de consultas lentas en MySQL/MariaDB:
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;- Revisa herramientas de monitoreo de rendimiento de aplicaciones (APM) como New Relic, Datadog, o alternativas de código abierto como Netdata.
- Agrega índices de base de datos a las columnas consultadas con frecuencia.
- Implementa caché (Redis, Memcached) para reducir el número de llamadas costosas a la base de datos.
#### 8. Monitorear proactivamente la salud del servidor
La resolución de problemas reactiva es menos efectiva que el monitoreo proactivo. Configura alertas para umbrales de CPU, memoria, E/S de disco y tiempo de respuesta para que puedas identificar y abordar los problemas antes de que resulten en errores 504 para tus visitantes.
Si tu entorno de hosting actual carece de los recursos o la flexibilidad para implementar estas optimizaciones, puede ser el momento de considerar una actualización. Los planes de VPS con cPanel de AlexHost ofrecen una interfaz de gestión intuitiva junto con el rendimiento bruto de un servidor privado virtual — facilitando el monitoreo y la gestión de tu servidor sin necesidad de profundos conocimientos de línea de comandos.
504 vs. otros errores comunes de puerta de enlace
Comprender cómo el 504 difiere de los errores HTTP relacionados te ayuda a diagnosticar los problemas con mayor precisión:
| Código de error | Nombre | Significado |
|---|---|---|
| 502 | Bad Gateway | El servidor upstream devolvió una respuesta no válida |
| 503 | Service Unavailable | El servidor no puede manejar solicitudes temporalmente |
| 504 | Gateway Timeout | La puerta de enlace agotó el tiempo de espera esperando al servidor upstream |
| 408 | Request Timeout | El cliente tardó demasiado en enviar una solicitud completa |
| 524 | A Timeout Occurred | Específico de Cloudflare; el servidor de origen agotó el tiempo de espera |
Prevención de errores 504: mejores prácticas
En lugar de esperar a que ocurran errores 504 y luego reaccionar, implementa estas mejores prácticas para minimizar su probabilidad:
- Dimensiona correctamente los recursos de tu servidor — asegúrate de que tu plan de hosting pueda manejar tu tráfico esperado, incluidas las cargas máximas.
- Usa un balanceador de carga — distribuye el tráfico entre múltiples servidores para evitar que un solo servidor se convierta en un cuello de botella.
- Implementa caché de forma agresiva — usa caché de página completa, caché de objetos y caché en el borde del CDN para reducir el número de solicitudes que llegan a tu servidor de origen.
- Establece valores de tiempo de espera realistas — configura tiempos de espera que reflejen el tiempo de procesamiento real que requiere tu aplicación, no valores predeterminados arbitrarios.
- Monitorea la salud del DNS — verifica regularmente que tus registros DNS sean correctos y que los valores TTL sean apropiados.
- Mantén el software actualizado — el software de servidor web desactualizado, las versiones de PHP o los plugins de CMS pueden introducir cuellos de botella de rendimiento que contribuyen a los tiempos de espera agotados.
- Asegura tu servidor correctamente — un certificado SSL bien configurado no solo protege a tus usuarios sino que también garantiza que las conexiones cifradas entre servidores no introduzcan retrasos inesperados en el protocolo de enlace. Los Certificados SSL de AlexHost son fáciles de implementar y ayudan a mantener una comunicación segura y eficiente entre servidores.
Conclusión
Un error 504 Gateway Timeout es un problema del lado del servidor que ocurre cuando una puerta de enlace o proxy no recibe una respuesta oportuna de un servidor upstream. Si bien puede ser frustrante para los visitantes, casi siempre es diagnosticable y solucionable con el enfoque correcto.
Para los visitantes, los mejores pasos inmediatos son actualizar la página, borrar la caché y esperar unos minutos antes de volver a intentarlo.
Para los administradores de servidor, la solución requiere una investigación sistemática: verificar la utilización de recursos del servidor, revisar las configuraciones de tiempo de espera, auditar las reglas del firewall, verificar los registros DNS y optimizar el código de aplicación lento o las consultas de base de datos.
Elegir un proveedor de hosting confiable con infraestructura robusta es la forma más efectiva de reducir la frecuencia de los errores 504. Ya sea que necesites Hosting VPS escalable, Servidores Dedicados de alto rendimiento, o Hosting Web Compartido de nivel básico, AlexHost proporciona la infraestructura, el soporte y las herramientas para mantener tu sitio web rápido, estable y accesible las 24 horas del día.
