Error 522 en Cloudflare: cuando el problema no está en el servidor

Por Sergio Fredes Mena
11 minutos

Durante las últimas semanas participamos en el análisis de un incidente que afectaba el acceso a un repositorio institucional basado en DSpace. Los usuarios reportaban intermitentemente el siguiente mensaje:

Error 522 – Connection Timed Out

Como suele ocurrir, la primera reacción fue asumir que el servidor presentaba problemas o que la aplicación había dejado de responder. Sin embargo, luego de una investigación más profunda, los resultados fueron muy distintos.

Este caso nos dejó varias enseñanzas que creemos pueden ser útiles para administradores de repositorios institucionales, equipos TI y organizaciones que publican sus servicios detrás de Cloudflare.

¿Qué significa realmente un Error 522?

Uno de los errores más malinterpretados de Internet es el 522 Connection Timed Out.

Al pertenecer a la familia de códigos 5xx, muchas personas asumen inmediatamente que se trata de un problema del servidor de origen.

En realidad, el significado es bastante más específico.

Un Error 522 indica que Cloudflare no logró completar una conexión TCP/HTTPS con el servidor de origen dentro del tiempo máximo establecido por la plataforma.

Es importante destacar que esto no significa necesariamente que el servidor esté caído.

Tampoco significa que la aplicación (DSpace, Apache, Tomcat, Nginx, etc.) haya dejado de funcionar.

Simplemente indica que Cloudflare no consiguió comunicarse exitosamente con el origen antes de que expirara el tiempo de espera.

Comprendiendo el recorrido de una solicitud

Cuando un usuario accede directamente a un servidor, la comunicación es relativamente sencilla.

  • Usuario > Servidor Web (Nginx) > Aplicación (DSpace)

Cuando se utiliza Cloudflare, aparece un intermediario adicional.

  • Usuario > Cloudflare > Infraestructura de publicación > Servidor Web > Aplicación

Por lo tanto, un Error 522 puede originarse en cualquiera de los componentes que participan entre Cloudflare y el servidor.

El error más común durante un diagnóstico

Cuando aparece un Error 522 es frecuente revisar inmediatamente:

  • utilización de CPU
  • memoria
  • carga del servidor
  • logs de DSpace
  • logs de Tomcat
  • logs de Nginx

Todo eso es correcto.

Pero muchas veces el problema no está allí.

En nuestro caso, ninguno de esos componentes mostraba errores.

Las primeras pruebas

La primera validación consistió en acceder directamente al servidor, evitando completamente Cloudflare.

La respuesta fue inmediata.

HTTP 200 OK

Tiempo de respuesta promedio:

≈ 60 milisegundos

Esto ya entregaba una pista importante.

El servidor estaba completamente operativo.

Comparando ambas rutas

Luego realizamos una comparación permanente entre ambas formas de acceso.

Acceso mediante Cloudflare

HTTP 522
≈20 segundos

Acceso directo al servidor

HTTP 200
≈0.06 segundos

En varias oportunidades se obtuvo exactamente el siguiente comportamiento:

Cloudflare = HTTP 522 (20 segundos)

Servidor directo = HTTP 200 (0.06 segundos)

Desde el punto de vista técnico esta evidencia es muy fuerte.

Mientras Cloudflare informaba que no podía conectarse al servidor, el propio servidor seguía respondiendo normalmente.

Validaciones realizadas

Para descartar problemas locales se verificó:

  • funcionamiento de DSpace
  • funcionamiento de Tomcat
  • funcionamiento de Nginx
  • certificados SSL
  • conectividad HTTPS
  • firewall local
  • reglas iptables
  • reglas nftables
  • fragmentación MTU
  • MSS Clamping
  • pérdidas de paquetes
  • errores de interfaz de red
  • conectividad directa utilizando el encabezado Host original

Todas las pruebas resultaron satisfactoras.

Una prueba especialmente interesante

Se ejecutó continuamente el siguiente procedimiento:

  1. Consultar el repositorio mediante Cloudflare.

  2. Consultar inmediatamente el mismo recurso directamente contra la IP del servidor.

Los resultados fueron muy ilustrativos.

Cloudflare

HTTP 522 20 segundos

Mientras tanto...

Servidor

HTTP 200 64 milisegundos

Esto demuestra que el origen nunca dejó de responder.

Entonces… ¿dónde estaba el problema?

Una vez descartado el servidor, la investigación cambió completamente de enfoque.

Las posibilidades restantes eran:

  • infraestructura intermedia
  • firewall perimetral
  • balanceadores
  • políticas de inspección
  • filtrado de tráfico
  • reglas de seguridad
  • conectividad entre Cloudflare y el proveedor de hosting

Es decir, componentes que normalmente no aparecen cuando se revisan únicamente los logs del servidor.

Un aspecto que suele pasarse por alto

Muchas organizaciones publican un sitio web sin saber realmente cuántas capas existen entre Internet y el servidor.

Por ejemplo:

Usuario > Cloudflare > Firewall institucional > Balanceador > WAF > Proveedor de Hosting > Servidor Linux > Nginx > Tomcat > DSpace

Cada una de estas capas puede aceptar, modificar, retrasar o incluso bloquear una conexión.

Por eso resulta tan importante comprender el recorrido completo de una solicitud.

No todos los errores 5xx significan lo mismo

Otro aprendizaje importante es que los códigos 5xx no representan un único tipo de problema.

Por ejemplo:

  • 500: Error interno de la aplicación.
  • 502: Respuesta inválida desde un servidor intermedio.
  • 503: Servicio temporalmente no disponible.
  • 504: Timeout de un gateway o proxy.
  • 522: Cloudflare no logró establecer conexión con el servidor de origen.
  • 524: Cloudflare sí logró conectarse, pero el servidor demoró demasiado en responder.

Aunque todos pertenecen a la familia 5xx, sus causas y responsables pueden ser completamente diferentes.

¿Qué recomendamos hacer ante un Error 522?

Nuestra experiencia nos permitió elaborar una pequeña lista de buenas prácticas.

1. No asumir inmediatamente que el servidor está caído

Verifique primero si el servidor responde mediante acceso directo.

Muchas veces el problema está antes de llegar al origen.

2. Comparar siempre ambas rutas

Realice pruebas simultáneas:

  • acceso mediante Cloudflare
  • acceso directo al servidor

Si ambas entregan resultados distintos, probablemente el problema no está en la aplicación.

3. Revisar toda la cadena de publicación

No basta con revisar DSpace.

También deben considerarse:

  • Nginx
  • Firewall
  • Balanceadores
  • WAF
  • Infraestructura institucional
  • Proveedor de hosting
  • Cloudflare

4. Basar las conclusiones en evidencia

Los registros, tiempos de respuesta y pruebas reproducibles son mucho más útiles que las suposiciones.

Una buena evidencia permite que distintos equipos (biblioteca, TI, proveedor de hosting y Cloudflare) trabajen sobre los mismos antecedentes.

5. Trabajar colaborativamente

En plataformas modernas es habitual que participen varios actores:

  • la institución propietaria del servicio;
  • el proveedor de hosting;
  • el equipo de redes;
  • el administrador de Cloudflare;
  • el proveedor de la aplicación.

Resolver este tipo de incidentes requiere compartir información y realizar pruebas coordinadas.

Los errores de conectividad rara vez se resuelven únicamente observando la aplicación.

En este caso, la evidencia permitió demostrar que DSpace, Nginx y el servidor continuaban funcionando correctamente incluso cuando Cloudflare reportaba un Error 522.

Más allá de la solución específica del incidente, la principal enseñanza es metodológica: antes de atribuir una falla al servidor o a la aplicación, es fundamental analizar todo el recorrido de la comunicación y respaldar cada conclusión con pruebas objetivas.

En INFODI creemos que un buen diagnóstico no consiste en encontrar rápidamente un culpable, sino en comprender cómo interactúan todos los componentes que hacen posible un servicio digital. Esa mirada integral es la que permite resolver problemas complejos de manera eficiente y entregar información útil para todos los equipos involucrados.