当访问网站时出现 “Error 521 – Web server is down” 提示,这通常意味着 Cloudflare 与源服务器之间的连接失败。虽然从用户角度看似是 Cloudflare 的问题,但错误的根源往往在于源站服务器自身配置不当。
本文将深入剖析出现 Error 521 的常见配置错误,帮助网站管理者快速定位并解决问题。
什么是 Error 521?
Error 521 是 Cloudflare 返回的一种特定错误码,意味着客户端成功连接到 Cloudflare,但 Cloudflare 无法与源服务器建立 TCP 连接。
这通常出现在以下两种情况:
源服务器关闭或崩溃
防火墙或安全策略阻止了 Cloudflare 的 IP 请求
一、源服务器未启动或端口未监听
最常见的问题就是 源站 Web 服务(如 Nginx、Apache)并未正常运行 或者没有监听 Cloudflare 需要访问的端口(如 80/443)。
排查建议:
登录服务器,使用 systemctl status nginx 或 systemctl status apache2 检查服务状态
确认服务器监听端口(netstat -tuln 或 ss -tuln)
检查服务器 CPU、内存是否爆满导致服务挂掉
二、防火墙屏蔽了 Cloudflare IP 段
如果服务器启用了防火墙(如 iptables、firewalld、UFW),而未将 Cloudflare 的 IP 段列入白名单,Cloudflare 的请求就会被拦截,导致连接失败。
解决方法:
将 Cloudflare 的 IP 范围加入防火墙白名单(Cloudflare IP 列表官方地址)示例(以 iptables 为例): iptables -I INPUT -p tcp -m multiport –dports 80,443 -s 173.245.48.0/20 -j ACCEPT
三、源站启用了 ModSecurity 或 WAF 阻挡了 Cloudflare 请求
一些服务器开启了额外的安全防护模块,如 ModSecurity、Fail2Ban 或 Imunify360,可能会误判 Cloudflare 的请求为攻击行为,从而阻断连接。
建议操作:
检查防火墙日志 /var/log/messages、/var/log/modsec_audit.log 是否有拦截记录
临时关闭 ModSecurity,观察是否恢复正常
配置白名单规则允许 Cloudflare IP
四、SSL/TLS 设置冲突
如果 Cloudflare 与源服务器之间使用的是 “Full (Strict)” 模式,而源站没有正确安装 SSL 证书,会导致 Cloudflare 无法完成握手。
建议检查:
源服务器是否配置了有效的 SSL 证书(推荐使用 Let’s Encrypt)
Cloudflare 后台设置是否与源站匹配(Full、Flexible、Strict)
五、服务器响应时间过长
当源站服务器响应时间超过 Cloudflare 设定的连接超时阈值(默认约100秒),也会返回 521 错误。
优化建议:
优化 PHP、数据库性能
配置缓存机制(如 Redis、WP Rocket)
避免长时间执行任务直接阻塞 HTTP 请求
六、Cloudflare 配置错误或 DNS 指向不正确
有时错误可能出现在 Cloudflare 端,比如:
DNS A 记录指向错误的 IP 地址
Cloudflare 面板中该记录未启用代理(灰云状态)
检查建议:
确认 Cloudflare DNS 中的记录 IP 正确,且为橙色云状态
使用 ping 或 nslookup 工具验证解析是否正常
七、端口不被 Cloudflare 支持
Cloudflare 仅支持特定的端口(如 80、443、8080、8443 等)。如果源站监听的是不被支持的端口,将会连接失败。
解决方式:
将服务迁移到受支持的端口
或绕过 Cloudflare,直接使用灰云模式
排查步骤建议
检查源站服务是否启动
检查服务器端口监听状态
查看防火墙或安全插件是否拦截了请求
确认 SSL 配置是否匹配 Cloudflare 设置
检查 DNS 配置及 Cloudflare 控制面板
查看服务器资源是否耗尽或响应超时
通过系统排查以上配置点,大多数 521 错误都能迅速定位和修复。如果持续出现该错误,建议联系服务器运维或主机服务提供商进一步分析网络通路问题。