Error 521: qué significa «Web Server Is Down» y cómo solucionarlo

Abres un sitio web y ves una página gris de Cloudflare: “Web server is down. Error code 521.” Tu navegador muestra “Working”, Cloudflare muestra “Working” y el host muestra “Error”. Si es tu sitio, cada minuto que sigue así te cuesta visitantes, ventas y confianza.
La buena noticia: un error 521 casi siempre tiene una de unas pocas causas, y la mayoría se arreglan en minutos cuando sabes cuál es. Esta guía te muestra cómo encontrar la causa exacta con rapidez, solucionarla con comandos que puedes copiar y pegar, y evitar que vuelva a aparecer, incluidas las dos causas que la mayoría de las guías pasan por alto.
Respuesta rápida
El código de error 521 significa que Cloudflare intentó conectarse al servidor de origen del sitio web y el servidor rechazó la conexión. Las causas más habituales son un servidor web que ha dejado de funcionar, un firewall que bloquea las direcciones IP de Cloudflare o un ajuste de SSL que envía a Cloudflare a un puerto en el que no escucha nada. Si eres visitante, el problema está en el lado del sitio web, no en el tuyo. Si eres el propietario del sitio, empieza por comprobar que tu servidor web está en marcha y que los rangos de IP de Cloudflare están permitidos.
¿Tu sitio falla solo en algunos países? Pruébalo tal como lo ven los visitantes reales con los proxies residenciales rotativos de CyberYozh en más de 195 países, desde 2 $/GB. Más abajo te mostramos cómo hacerlo.
¿Eres visitante o propietario del sitio? Empieza aquí
Si estás visitando el sitio:
El error 521 no lo causa tu dispositivo, tu navegador ni tu conexión a internet
Espera unos minutos y actualiza. Muchos errores 521 desaparecen cuando el servidor se reinicia
Si dura más, el propietario del sitio tiene que solucionarlo. Avísale si puedes
Una VPN o un proxy normalmente no ayudará, porque el servidor rechaza a la propia Cloudflare. La excepción es un bloqueo regional, que se explica más abajo
Si eres el propietario del sitio:
¿Tu servidor web está en marcha? → Paso 1
¿El sitio carga cuando evitas Cloudflare? Si es así → Pasos 3–5. Si no → Pasos 1, 2 y 6
¿El error vuelve cada pocos días? → “Por qué el error 521 sigue volviendo”
¿Ocurre solo en algunos países? → “¿Error 521 solo en algunos países?”
Qué significa el código de error 521

El código de error 521 es la forma que tiene Cloudflare de decir “Llegué a tu servidor, pero se negó a hablar conmigo”. No es un código de estado HTTP oficial. Es uno de los códigos 5xx propios de Cloudflare, por eso también lo verás escrito como error HTTP 521 o código de estado 521.
En la página de error de Cloudflare, el diagrama muestra exactamente dónde se rompió la cadena: el navegador y Cloudflare funcionan bien, y el tercer recuadro, etiquetado “Host”, muestra Error. Ese “error de host de Cloudflare” significa que el problema está en el servidor de origen, la máquina que realmente ejecuta el sitio web.
En qué se diferencia de los errores vecinos:
520: el servidor respondió, pero con una respuesta vacía o no válida. Consulta nuestra guía sobre el código de error 520
521: el servidor rechazó la conexión
522: el servidor no respondió a tiempo
Qué es el código de error 521 en Cloudflare
Cuando alguien visita un sitio que usa Cloudflare, la solicitud llega primero a un centro de datos de Cloudflare. Después, Cloudflare abre una conexión con tu servidor de origen para obtener la página. El código de error 521 en Cloudflare aparece cuando esa conexión es rechazada de forma activa.
Según la documentación de Cloudflare, hay dos motivos principales:
La aplicación del servidor web está fuera de línea, por ejemplo, Nginx o Apache se ha bloqueado o detenido
Las solicitudes de Cloudflare se bloquean en el origen, normalmente por un firewall, un plugin de seguridad o un limitador de tasa
Todas las soluciones que siguen atacan una de esas dos causas.
Cómo solucionar el código de error 521 en Cloudflare (7 pasos)

Sigue estos pasos en orden. La mayoría de los errores 521 se resuelven en el paso 3.
Paso 1: Comprueba que tu servidor web está en marcha
Conéctate a tu servidor y comprueba el estado del servidor web:
sudo systemctl status nginx # or: apache2 / httpd
sudo systemctl restart nginx # restart it if it's stopped
If it keeps stopping, check why. A common cause is the server running out of memory:
bash
sudo journalctl -u nginx --since "1 hour ago"
sudo dmesg | grep -i "killed process"Paso 2: Prueba el servidor directamente, sin pasar por Cloudflare
Esto te dice si el servidor en sí funciona. Sustituye ORIGIN_IP por la dirección IP real de tu servidor:
curl -I --resolve example.com:443:ORIGIN_IP https://example.com
sudo ss -tlnp | grep -E ':80|:443'El primer comando carga tu sitio directamente desde el servidor. El segundo muestra si hay algo escuchando en los puertos 80 y 443. Si no escucha nada, Cloudflare no tiene a qué conectarse.
Paso 3: Permite las direcciones IP de Cloudflare en tu firewall
Esta es la solución más habitual. Cloudflare publica su lista completa de rangos de IP en cloudflare.com/ips. Permítelos todos en los puertos 80 y 443. Con ufw:
for ip in $(curl -s https://www.cloudflare.com/ips-v4) $(curl -s https://www.cloudflare.com/ips-v6); do
sudo ufw allow from "$ip" to any port 80,443 proto tcp
doneRevisa también:
Plugins de seguridad como Wordfence y herramientas del servidor como Imunify360 o CSF
El bloqueador de IP del panel de control de tu hosting, por ejemplo en cPanel
El firewall de red o la protección DDoS de tu proveedor, que quizá no controles directamente
Error común: pegar una regla de .htaccess que “deniega todo y permite Cloudflare”. Puede dejar fuera tus propias herramientas de monitorización y administración. Permite los rangos de Cloudflare sin bloquear todo lo demás, salvo que lo hayas planificado.
Paso 4: Ajusta el modo SSL/TLS al puerto correcto
Cloudflare se conecta por distintos puertos según tu configuración SSL/TLS:
Modo SSL/TLS de Cloudflare | Puerto al que se conecta Cloudflare | Lo que necesita tu servidor |
Flexible | 80 | Un servidor web escuchando en el puerto 80 |
Full | 443 | Un servidor web escuchando en el puerto 443 con cualquier certificado |
Full (strict) | 443 | Puerto 443 con un certificado válido, como un Cloudflare Origin Certificate gratuito |
Si cambiaste a Full y apareció un error 521 al instante, lo más probable es que tu servidor no esté escuchando en el puerto 443.
Paso 5: Revisa tus registros DNS, incluido IPv6
En los ajustes de DNS de Cloudflare, comprueba que el registro A apunte a la dirección IP actual de tu servidor. Después busca un registro AAAA (IPv6). Si existe pero tu servidor no acepta conexiones IPv6, Cloudflare puede intentar IPv6 y ser rechazada, mientras que el sitio funciona perfectamente al probarlo por IPv4. Elimina el registro AAAA o haz que tu servidor web escuche en IPv6.
Paso 6: Revisa las configuraciones con Docker o proxy inverso
Si tu sitio se ejecuta en Docker o detrás de una herramienta como Nginx Proxy Manager, asegúrate de que el puerto del contenedor esté publicado, por ejemplo -p 80:80 -p 443:443. Comprueba también que la aplicación escuche en 0.0.0.0, no solo en 127.0.0.1. Una aplicación que solo escucha en localhost rechaza todas las conexiones externas, incluidas las de Cloudflare.
Paso 7: Contacta con tu proveedor de hosting
Si nada de lo anterior funciona, es posible que tu proveedor esté bloqueando a Cloudflare a nivel de red. Envíale el Ray ID que aparece al final de la página de error de Cloudflare, junto con la hora a la que se produjo el error. Así podrá localizar la solicitud bloqueada exacta.
Por qué el error 521 sigue volviendo
Esta es la pregunta que llena los foros de hosting y que la mayoría de las guías nunca responde. Tu sitio funciona, luego muestra un 521 durante un rato y después se arregla solo.
La causa habitual: detrás de Cloudflare, todos los visitantes llegan a tu servidor desde una dirección IP de Cloudflare. Herramientas de seguridad como fail2ban, CSF o mod_evasive, o el propio limitador de tasa de tu servidor, ven miles de solicitudes desde unas pocas IP, deciden que es un ataque y las bloquean temporalmente. Esos “atacantes” son Cloudflare, así que el sitio devuelve un error 521 hasta que el bloqueo expira.
La solución real tiene dos partes:
1. Muestra a tu servidor la dirección IP real de cada visitante. Cloudflare la envía en la cabecera CF-Connecting-IP.
Para Nginx:
nginx
# Repeat set_real_ip_from for every range listed at cloudflare.com/ips
set_real_ip_from 173.245.48.0/20;
real_ip_header CF-Connecting-IP;
For Apache, using mod_remoteip:
apache
RemoteIPHeader CF-Connecting-IP
# Repeat for every range listed at cloudflare.com/ips
RemoteIPTrustedProxy 173.245.48.0/202. Añade los rangos de Cloudflare a las listas de exclusión de tus herramientas de seguridad, por ejemplo ignoreip en fail2ban o csf.ignore en CSF. Así tus herramientas bloquearán a los visitantes realmente abusivos y nunca a la propia Cloudflare.
Comprobación rápida: si los registros de tu firewall muestran bloqueos de IP que empiezan por 173.245., 104.16. o 172.64., has encontrado la causa. Son rangos de Cloudflare.
Error 521 solo en algunos países: prueba desde varias ubicaciones
A veces un sitio funciona perfectamente para ti, pero muestra un error 521 a visitantes de otros lugares. Cada centro de datos de Cloudflare se conecta a tu servidor desde sus propios rangos de IP. Si tu firewall, o una regla de bloqueo por países en una herramienta como CSF, bloquea algunos de esos rangos, solo ven el error los visitantes dirigidos a través de esos centros de datos.
Todos los sitios con Cloudflare tienen una página de diagnóstico integrada en /cdn-cgi/trace. Su línea colo= indica qué centro de datos de Cloudflare gestionó tu solicitud. Para ver qué obtienen los visitantes de distintos países, ejecuta la comprobación a través de proxies residenciales ubicados en esos países:
import requests
SITE = "https://example.com"
PROXIES = { # one proxy per country you want to test
"US": "http://USERNAME:PASSWORD@GATEWAY_HOST:PORT",
"DE": "http://USERNAME:PASSWORD@GATEWAY_HOST:PORT",
"SG": "http://USERNAME:PASSWORD@GATEWAY_HOST:PORT",
}
for country, proxy in PROXIES.items():
p = {"http": proxy, "https": proxy}
trace = requests.get(f"{SITE}/cdn-cgi/trace", proxies=p, timeout=15).text
colo = next((line[5:] for line in trace.splitlines() if line.startswith("colo=")), "?")
status = requests.get(SITE, proxies=p, timeout=15).status_code
print(f"{country}: Cloudflare data center {colo}, status {status}")Si un país devuelve 521 mientras los demás devuelven 200, has encontrado un bloqueo regional. Revisa tu firewall y las reglas por país en busca de los rangos de Cloudflare que atienden a esa región.
Prueba tu sitio desde más de 195 países: usa los proxies residenciales rotativos de CyberYozh con segmentación por país, desde 2 $/GB, y con el tráfico no utilizado acumulable. ¿Necesitas ver qué obtienen los visitantes móviles? Prueba los proxies móviles LTE/5G de CyberYozh. Confirma antes la ubicación de cada proxy con el verificador de IP gratuito de CyberYozh.
Ves un error 521 al hacer scraping: no malgastes tráfico de proxy
Si tu scraper o tu herramienta SEO recibe un error 521, el servidor del sitio objetivo está caído o rechazando a Cloudflare. No te está bloqueando a ti. Cambiar a una IP nueva no servirá de nada, y cada reintento consume tráfico.
Qué hacer en su lugar:
Aplica un backoff, esperando más tiempo entre cada reintento, y detente tras tres o cuatro intentos
Prueba una vez desde otra región. Si solo falla una región, se trata de un bloqueo regional por parte del sitio objetivo
Mueve la URL a una cola de reintentos y deja que el resto del trabajo siga en marcha
Registra los errores 521 por separado de los bloqueos como el 403 o el 1020 de Cloudflare, para que las cifras de tasa de éxito sean fiables
En trabajos grandes, un proxy backconnect rotativo se encarga de rotar la IP ante bloqueos reales, mientras tu código gestiona los errores 521 con backoff. Nuestro caso de uso de web scraping muestra cómo lo configuran los equipos.
Cómo prevenir el error 521

Monitoriza la disponibilidad desde varias ubicaciones, para enterarte de un error 521 antes que tus visitantes
Mantén actualizada la lista de IP de Cloudflare en tu firewall. Cloudflare actualiza sus rangos de vez en cuando
Haz que tu servidor web se reinicie solo tras un fallo, por ejemplo con Restart=always en su servicio de systemd
Restaura las IP reales de los visitantes para que las herramientas de seguridad nunca bloqueen a Cloudflare
Prueba los cambios de SSL y DNS en un dominio de pruebas antes de modificar tu sitio en producción
Vigila la memoria y la CPU, ya que un servidor que se queda sin memoria deja de aceptar conexiones
Conclusión
El código de error 521 parece alarmante, pero es uno de los errores de Cloudflare más fáciles de solucionar porque la causa siempre está en tu propio servidor. Comprueba que el servidor web está en marcha, permite los rangos de IP de Cloudflare, ajusta tu modo SSL al puerto correcto y busca un registro AAAA olvidado. Si el error sigue volviendo, impide que tus herramientas de seguridad bloqueen a Cloudflare. Si solo aparece en algunos países, prueba desde esos países antes de cambiar nada.
Ve tu sitio como lo ve el mundo: consulta todos los planes en el catálogo de CyberYozh, con proxies residenciales rotativos en más de 195 países desde 2 $/GB y proxies móviles LTE/5G desde 1,70 $ al día.
