Saltar al contenido principal

Guías / Solucionarlo: guías para los errores que aparecen de verdad

Error 521 de Cloudflare: web server is down - causas y soluciones

El error 521 de Cloudflare significa que Cloudflare llegó a la dirección IP de tu origen pero el servidor rechazó activamente la conexión, normalmente porque no hay nada escuchando en el puerto que probó Cloudflare, un firewall bloqueó la petición, o el propio servidor web está detenido. Es distinto de un tiempo de espera agotado: algo en el origen respondió "no" de inmediato.

Qué significa el error 521

Cuando Cloudflare hace de proxy de una petición, abre una conexión TCP con tu servidor de origen en el puerto configurado para ese registro. El error 521 salta cuando el origen devuelve un reset TCP (RST) o un "connection refused" ICMP en lugar de aceptar la conexión. Eso es un rechazo claro, no silencio. Compáralo con el error 522, donde Cloudflare no recibe ninguna respuesta dentro de su ventana de tiempo de espera, o el error 520, donde la conexión se establece pero la respuesta HTTP que sigue está rota.

Cómo aparece el error 521

Los visitantes ven la propia página de Cloudflare, "Error 521: web server is down", con un Ray ID. Una petición con curl contra el dominio devuelve el mismo estado:

curl -I https://example.com
HTTP/2 521

Como el origen rechazó la conexión en la capa de red, nada llega a tu aplicación, así que los registros de tu aplicación normalmente no mostrarán nada en absoluto para las peticiones fallidas. La evidencia está más cerca de la red: los propios registros de arranque y de acceso de tu servidor web, los registros de conexión de tu firewall o grupo de seguridad, y los registros del sistema en el host de origen (journalctl -u nginx, systemctl status nginx, o el equivalente de tu pila).

Qué causa el error 521

  • El proceso del servidor web está detenido o se cayó. No hay nada escuchando en el puerto, así que cualquier intento de conexión se rechaza de inmediato.
  • Cloudflare está configurado para llegar al puerto equivocado. Si el puerto de origen fijado en el registro DNS o en la configuración de red de Cloudflare no coincide con lo que tu servidor realmente escucha, todas las conexiones se rechazan.
  • Un firewall o un grupo de seguridad en la nube está bloqueando los rangos de IP de Cloudflare. Si la regla usa una lista blanca de IP de origen concretas y los rangos publicados de Cloudflare no están en ella, o estuvieron y se eliminaron después, las conexiones desde el borde de Cloudflare se descartan o rechazan.
  • El modo SSL/TLS está fijado en Full o Full strict pero nada escucha en el puerto 443 del origen. Esos modos exigen que Cloudflare se conecte al origen por HTTPS; si el origen solo sirve HTTP plano, o la configuración del certificado nunca se completó, el intento de conexión HTTPS se rechaza.
  • Un servicio ajeno ya está enlazado al puerto que el servidor web espera usar, así que el propio servidor web nunca llega a arrancar.

521 frente a 523 frente a 522

Estos tres códigos son fáciles de confundir porque todos describen una conexión que nunca produjo una respuesta HTTP, pero cada uno significa que Cloudflare falló en una etapa distinta.

  • 521, web server is down: Cloudflare llegó a la dirección IP del origen, y algo ahí rechazó activamente la conexión (un reset TCP o un ICMP unreachable). El servidor existe y respondió, solo que con un rechazo.
  • 523, origin is unreachable: Cloudflare ni siquiera pudo llegar tan lejos. Esto apunta a un problema de enrutamiento, DNS o IP, habitualmente un registro DNS en Cloudflare que todavía apunta a una IP antigua después de una migración de servidor, o una ruta de red privada (como un Cloudflare Tunnel) que está caída.
  • 522, connection timed out: Cloudflare intentó el handshake TCP pero no recibió respuesta a tiempo, ni una aceptación ni un rechazo. Consulta la guía aparte sobre el error 522 de Cloudflare para ese caso.

Cómo saber de quién es la culpa

Un 521 es una señal fuerte de que el problema está del lado del origen respecto al borde de Cloudflare, ya que el rechazo vino de tu propio servidor o de la red que tienes justo delante. La pregunta que importa a nivel operativo es si afecta a todo el sitio o a una parte del tráfico, y la forma más rápida de comprobarlo es ejecutar una comprobación HTTP desde varias ubicaciones a la vez. La comprobación HTTP de HostTracker consulta el dominio desde puntos de control en varios países y reporta cada resultado por separado, así que puedes ver de inmediato si todas las ubicaciones reciben el mismo 521 o solo algunas, lo que apuntaría a una regla de firewall parcial o a un balanceador de carga con un backend enfermo en lugar de todo el servidor caído.

Cómo solucionar el error 521

Si eres un visitante

  1. Recarga después de una breve espera. Si el operador del sitio está reiniciando el servidor, la solución puede estar ya en marcha.
  2. Revisa la página de estado del sitio, si tiene una, o sus redes sociales, en busca de un aviso de incidencia conocida.
  3. No hay nada que cambiar de tu lado. El rechazo ocurre en el propio servidor del sitio, no en tu navegador, tu DNS ni tu proveedor de internet.

Si administras el sitio

  1. Confirma que el proceso del servidor web realmente se está ejecutando: systemctl status nginx (o tu equivalente), y revisa sus registros por si hay una caída o un reinicio fallido.
  2. Confirma que el puerto que Cloudflare está configurado para usar coincide con lo que tu servidor escucha. Compara el puerto de origen en el registro DNS o en los ajustes de Network del panel de Cloudflare con los puertos que tu servidor realmente escucha (ss -tlnp en Linux).
  3. Comprueba que tu firewall o grupo de seguridad en la nube permite el tráfico entrante desde los rangos de IP publicados de Cloudflare en ese puerto. Cloudflare publica sus rangos IPv4 e IPv6 actuales en cloudflare.com/ips; una regla construida a partir de una copia antigua de esa lista empezará a rechazar los rangos nuevos a medida que se añadan.
  4. Si tu modo de cifrado SSL/TLS es Full o Full strict, confirma que realmente hay algo escuchando en el puerto 443 del origen con un certificado que Cloudflare pueda validar. Cambiar temporalmente a Flexible es útil como diagnóstico para confirmar que esta es la causa, no como solución permanente, ya que Flexible deja sin cifrar la conexión entre Cloudflare y tu origen.
  5. Salta Cloudflare para probar el origen directamente y ver el rechazo en bruto sin la capa de borde en medio:
    curl -v -H "Host: example.com" https://ORIGIN_IP:PORT/
    Un "Connection refused" aquí confirma que el problema está en el proceso que escucha en el origen o en su firewall, no en Cloudflare.
  6. Comprueba que nada más en el host ha ocupado el puerto que espera tu servidor web, lo que le impediría enlazarse a él al arrancar.

Cómo prevenirlo

Una regla de firewall que solo usa una lista blanca de los rangos de Cloudflare es una forma habitual de que el 521 reaparezca meses después, ya que Cloudflare añade y retira rangos de IP con el tiempo y una regla copiada una sola vez se queda desactualizada. Una comprobación HTTP que se ejecuta fuera de tu red detecta la caída resultante de la misma forma en que la viviría un visitante, en lugar de depender de que alguien note que el sitio no responde y lo reporte.

Errores relacionados

Preguntas frecuentes

¿El error 521 es lo mismo que el servidor estando físicamente apagado?

No necesariamente. Significa que algo rechazó la conexión TCP, lo que puede ser el proceso del servidor web detenido mientras la propia máquina sigue encendida, un firewall rechazando la petición, o un desajuste en el modo TLS, además de que el servidor esté realmente caído.

¿Cuál es la forma más rápida de confirmar que un firewall es la causa?

Consulta el origen directamente con su dirección IP y la cabecera Host del dominio, saltándote Cloudflare. Si eso también se rechaza, el bloqueo probablemente está en el propio firewall o grupo de seguridad del origen y no en algo específico de los rangos de IP de Cloudflare.

¿Por qué empezaría a ocurrir un 521 sin ningún cambio en mi servidor?

Cloudflare actualiza periódicamente sus rangos de IP publicados. Una regla de firewall construida a partir de una copia antigua de esa lista deja de coincidir con los rangos añadidos recientemente, así que las peticiones desde esos rangos se rechazan aunque nada haya cambiado en tu propio servidor.

¿Cambiar el modo SSL/TLS a Flexible arregla el 521 de forma permanente?

Puede enmascarar un desajuste de Full o Full strict, ya que Flexible no exige HTTPS en el origen, pero también significa que la conexión entre Cloudflare y tu servidor queda sin cifrar. Trátalo como un paso de diagnóstico, arregla luego el proceso TLS del origen y vuelve a cambiarlo.

¿En qué se diferencia el 521 del 523?

El 521 significa que Cloudflare llegó al origen y fue rechazado. El 523 significa que Cloudflare no pudo llegar a él en absoluto, lo que apunta a DNS, enrutamiento o un túnel roto en lugar de a algo que haya hecho el propio servidor de origen.

Compruébalo ahora

Ejecuta la comprobación gratuita en tu propio sitio, sin necesidad de cuenta.

HTTP check

Monitoriza esto de forma permanente

Recibe un aviso en cuanto algo falle: HostTracker comprueba desde más de 300 ubicaciones y te avisa por correo, SMS, Slack, Telegram y más.

Funciones de HostTracker

Más en esta sección: Solucionarlo: guías para los errores que aparecen de verdad