El mensaje de error “Error 521: Servidor web está caído” indica un problema con el servidor. Este es el mensaje de error de Cloudflare cuando el servidor de origen no responde a la solicitud de Cloudflare.
Esta guía explica las causas comunes y proporciona métodos para diagnosticar y resolver el error 521.
Requisitos Previos:
- Acceso a la cuenta de Cloudflare asociada con el dominio afectado por el error.
- Acceso al servidor web de origen.
¿Qué es el Error 521?
Cuando un usuario quiere visitar un sitio web que utiliza la red de distribución de contenido (CDN) de Cloudflare, ocurre lo siguiente:
- El navegador web intenta conectarse a Cloudflare y
- Cloudflare intenta conectarse al servidor web de origen para mostrar el contenido.
El error 521 ocurre cuando Cloudflare no puede conectarse al servidor de origen del sitio web.
¿Qué Causa el Error 521?
Los siguientes problemas causan el Error 521: Servidor web está caído:
- El servidor web de origen está fuera de línea. El servidor está apagado o hay un problema con Apache o Nginx.
- Direcciones IP de Cloudflare bloqueadas o en lista negra. Todas las solicitudes de conexión provienen de las IP de Cloudflare. El servidor de origen podría tener una configuración de seguridad del lado del servidor que bloquea una dirección IP si envía demasiadas solicitudes.
- Problemas de configuración en el servidor web de origen. Los servidores deben configurarse específicamente para funcionar con una CDN. El error 521 podría deberse a un servidor mal configurado.
- Pérdida de paquetes debido a los módulos de Apache para la prevención de ataques de denegación de servicio Slowloris. Los módulos de seguridad de Apache pueden bloquear solicitudes provenientes de Cloudflare si no están configurados correctamente.
¿Cómo Diagnosticar y Solucionar el Error 521?
Siga los pasos a continuación para diagnosticar y resolver el error 521.
1. Verifique el Servidor de Origen
Para diagnosticar el error 521 de Cloudflare, primero verifique si el servidor de origen está en línea. Esto se puede hacer mediante la comprobación del código de estado HTTP del servidor.
Hay varias formas de verificar el estado HTTP de un sitio web, como se describe a continuación.
Verificar el Estado HTTP Usando cURL
Abra el símbolo del sistema como administrador (o terminal si está utilizando Mac o Linux) y ejecute el comando cURL:
curl --silent --output /dev/null --write-out "%{http_code}" https://ejemplo.sitio
Las opciones adicionales del comando cURL hacen lo siguiente:
- –silent: Oculta la barra de progreso (no imprime el proceso de obtención de información).
- –output: Imprime una salida.
- /dev/null: Suprime la impresión de todo el cuerpo HTML.
- –write-out “%{http_code}”: Especifica los datos/cabecera solicitados para imprimir el código de estado HTTP.
La salida devuelve el código de estado HTTP 200 si el servidor está en funcionamiento. Un código de estado HTTP 5xx (por ejemplo, 500 – error interno del servidor) indica un problema con el servidor de origen.
Verificar el Estado HTTP a Través de un Comprobador de Encabezados HTTP en Línea
Abra cualquier comprobador de encabezados HTTP en línea y pegue la URL del sitio web o la dirección IP en el campo designado.
El resultado será similar a la siguiente imagen. El código de estado HTTP 200 indica que el servidor está en funcionamiento.
Revisar los Registros de Errores del Servidor de Origen
Si la salida devuelve un código de estado HTTP 5xx (errores del lado del servidor), revise el registro de errores del servidor para intentar identificar la causa raíz del problema.
Los registros de errores del servidor se pueden acceder de las siguientes maneras:
- Usando una interfaz gráfica de usuario (para servidores gestionados con una aplicación de gestión de servidor)
- A través del terminal.
Si está utilizando el terminal para acceder a los registros de errores del servidor Apache, aquí están las ubicaciones predeterminadas para diferentes distribuciones de Linux:
- FreeBSD – /var/log/httpd-error.log
- Debian y Ubuntu – /var/log/apache2/error.log
- RHEL, Red Hat, CentOS y Fedora – /var/log/httpd/error_log
Los registros de errores de Nginx en las distribuciones de Linux más populares, como Ubuntu, Debian y CentOS, se encuentran en /var/log/nginx.
Nota: El usuario que accede al registro debe tener permisos de escritura en el directorio del registro de errores.
2. Poner en Lista Blanca las Direcciones IP y Puertos de Cloudflare
Cloudflare actúa como intermediario entre un firewall privado y el servidor de origen. Cada intento de conexión realizado a una página web es procesado por Cloudflare y dirigido al servidor de origen a través de un conjunto de direcciones IP y puertos de red específicos.
Para que Cloudflare funcione correctamente, debe poder comunicarse con el servidor de origen sin interferencias. El error 521 ocurrirá si la conexión entre Cloudflare y el servidor de origen se ve interferida por lo siguiente:
- Reglas de denegación de IP especificadas en .htaccess.
- Reglas de firewall que restringen la comunicación con Cloudflare.
- Puertos desactivados a través de los cuales Cloudflare se comunica con el servidor de origen.
- Límites de velocidad y otros tipos de restricciones del lado del servidor.
Estos problemas se pueden resolver:
- Verificando .htaccess y las reglas del firewall.
- Poniendo en lista blanca las IP de Cloudflare.
- Activando los puertos correctos.
Importante: Algunos proveedores de alojamiento ponen en lista blanca las IP de Cloudflare por defecto. Consulte con su proveedor de alojamiento antes de realizar soluciones.
Poner en Lista Blanca las Direcciones IP a través de .htaccess
Para poner en lista blanca las direcciones IP de Cloudflare en el archivo .htaccess, agregue todas las direcciones en la línea que comienza con “allow from all” y separe las direcciones IP individuales con espacios.
Poner en Lista Blanca las Direcciones IP a través del Firewall
El proceso de poner en lista blanca las direcciones IP variará de un firewall a otro. Como ejemplo, esta guía se enfoca en actualizar las reglas de iptables. Para otros firewalls populares, consulte nuestros artículos sobre Cómo Usar firewalld en CentOS 7 y Cómo Configurar UFW en Ubuntu.
Para permitir conexiones entrantes desde las direcciones IP de Cloudflare en iptables:
- Abra el terminal de Linux.
- Conéctese al servidor a través de SSH.
- Ejecute el siguiente comando para cada dirección IP de Cloudflare (reemplace la dirección IP de ejemplo con la de Cloudflare):
sudo iptables -A INPUT -s 192.168.0.1 --dport 443 -j ACCEPT
Nota: Puede pasar varias direcciones IP después de la opción -s. Asegúrese de usar comas entre cada dirección IP individual.
Esto agregará una nueva regla a la cadena de reglas de iptables que permite conexiones entrantes a la dirección IP especificada. Los parámetros utilizados en la sintaxis son:
- -A: Agrega una regla a la cadena de reglas.
- INPUT: Especifica que la regla se refiere a todas las conexiones entrantes.
- -s: Especifica la fuente del tráfico.
- -j ACCEPT: Especifica la acción que se debe tomar con los paquetes de datos (aceptar).
- –dport 443: Especifica el número de puerto de destino de un protocolo, donde dirigir los paquetes. Abra el puerto 443 para conexiones en redes cifradas.
Nota: Cuando está activada la protección completa (modo SSL/TLS estricto), Cloudflare direcciona todo el tráfico al puerto 443, el puerto utilizado para conexiones en redes cifradas.
Los parámetros opcionales incluyen:
- -I: Especifica la interfaz de red cuyo tráfico se aplica al filtro.
- -p: Especifica el protocolo de red que filtra el tráfico entrante (TCP, UDP, SCTP, UDP-lite, ICMPv6, etc.)
Nota: Los parámetros deben escribirse siempre en el siguiente orden: -A, -i, -p, -s, –dport, -j.
Si poner en lista blanca las direcciones IP de Cloudflare no soluciona el error 521, póngase en contacto con su proveedor de alojamiento para verificar si el problema está en su lado.
3. Confirme que está Instalado un Certificado SSL
Si las IP de Cloudflare están en lista blanca y el acceso al puerto 443 está habilitado, pero el error 521 persiste, el problema puede estar en el certificado de seguridad de su sitio web.
Cloudflare requiere un certificado de seguridad válido: el Certificado de Origen de Cloudflare o un certificado de una autoridad de confianza pública. La falta (o caducidad) de un certificado SSL hará que aparezca el error 521 o el error 526.
Ya sea que tenga un certificado SSL o desee crear uno utilizando Cloudflare, tendrá que pasar por el proceso de crear un certificado de seguridad de CA de Origen:
- Inicie sesión en Cloudflare.
- Seleccione el dominio en el que desea instalar el certificado.
- Vaya a SSL/TLS > Servidor de Origen.
- Haga clic en Crear Certificado.
- Elija si desea:
- Generar un certificado de Cloudflare (Generar clave privada y CSR con Cloudflare)
- Usar un certificado de terceros existente (Usar mi clave privada y CSR)
Especifique los nombres de host a los que se aplicará el certificado (el nombre de la zona raíz y el nombre de host de comodín de primer nivel se incluyen por defecto)
Especifique la fecha de caducidad del certificado
Haga clic en Siguiente
Elija el formato de clave:
- PEM, DER – para servidores que utilizan OpenSSL (Apache y NGINX)
- PKCS#7 (.p7b) – para servidores que utilizan Windows y Apache Tomcat
Guarde el certificado de origen y la clave privada en archivos separados
Haga clic en Aceptar
Ahora tiene un certificado de seguridad de CA de Origen que debe agregar al servidor de origen. Para hacer esto:
- Suba el certificado al servidor web de origen
- Actualice la configuración del servidor web
- Habilite SSL y el puerto 443
Algunos servidores web de origen también requerirán que se cargue un certificado de raíz de CA de Origen de Cloudflare. La versión RSA y EEC del certificado se encuentra en la documentación de Cloudflare.
Nota: Según Cloudflare, la versión EEC no debe usarse con Apache cPanel.
4. Verifique la Configuración de mod_security
Si el módulo mod_security de Apache actúa como el firewall del servidor de origen, sus reglas principales podrían bloquear las solicitudes de Cloudflare, lo que provoca la aparición del error 521.
Si está utilizando mod_security, asegúrese de que se esté utilizando la última versión y de que ninguna de las reglas esté bloqueando las direcciones IP de Cloudflare.
5. Desactive mod_antiloris y mod_reqtimeout
Los módulos mod_antiloris y mod_reqtimeout son módulos del servidor HTTP Apache diseñados para prevenir ataques de denegación de servicio Slowloris limitando el número de conexiones desde direcciones IP únicas dentro de un período de tiempo especificado.
Cloudflare es un proxy inverso, lo que significa que procesa las solicitudes y las dirige al servidor de origen a través de un rango limitado de direcciones IP. Con mod_antiloris y mod_reqtimeout configurados, una vez que una dirección IP de Cloudflare excede el límite de conexiones, cada intento de conexión siguiente desde esa dirección IP resulta en la pérdida de paquetes.
Para resolver el problema, desactive y descargue los módulos para que Cloudflare pueda funcionar sin interrupciones.
6. Verifique la Configuración de Railgun
Railgun es un protocolo de optimización de WAN desarrollado por Cloudflare para aumentar la velocidad de conexión.
Una configuración incorrecta de Railgun hace que aparezca el error 521, acompañado del mensaje de error “railgun.wan_error conexión fallida”.
Para resolver el problema, desactive Railgun para que el sitio web pueda ser accedido y revise la configuración. Si necesita ayuda, póngase en contacto con el soporte de Cloudflare.
7. Póngase en Contacto con el Soporte de Cloudflare
Si los métodos de diagnóstico no ayudaron a localizar el problema, póngase en contacto con el soporte de Cloudflare. Un representante lo guiará para recopilar la información necesaria y realizar más diagnósticos.
Ahora sabe qué causa el mensaje de error “Error 521: Servidor web está caído” y cómo diagnosticarlo y solucionarlo.
Utilice la información proporcionada en esta guía para solucionar el error 521 y evitar que ocurra en el futuro.
El error 521 es solo uno de los numerosos mensajes de error que pueden aparecer al visitar un sitio web que utiliza la CDN de Cloudflare. Otro código de error común es el 520: El Servidor Web Está Devolviendo un Error Desconocido.