当你用 Cloudflare 做网站加速或防护时,如果访问页面时突然出现 Error 521(Web server is down),那说明 Cloudflare 跟源站之间的连接出了问题。也就是说,CDN 正常,但源服务器没回应,或者直接拒绝了 Cloudflare 的请求。
这种错误不一定是服务器宕机,可能是配置问题、防火墙拦截、SSL 设置不当等引起的。下面就来讲讲,怎么避免网站出现 Error 521。
1. 保证源站服务器在线且端口正常
Cloudflare 本质上是一个反向代理,它把流量转发给你的源服务器。如果源站宕机,或者 Web 服务没开启,那它自然连不上。
检查思路如下:
确保服务器正在运行(比如 Apache 或 Nginx 没崩)
检查服务器监听的端口是否是 80 或 443,并且处于开启状态
使用 curl 或浏览器直接访问源站 IP,看看是否能正常返回网页
如果本地能打开页面,而 Cloudflare 报 521,说明可能是防火墙或 CDN 问题。
2. 白名单 Cloudflare 的 IP 段
很多服务器默认开启了防火墙(如 iptables、firewalld、CSF 等),可能会误判来自 Cloudflare 的请求为攻击行为,从而封掉它的 IP。
Cloudflare 有自己的 IP 地址段,官方文档上都有公开。建议把这些 IP 添加到服务器的防火墙白名单中。
操作示例(以 Ubuntu 为例):
sudo ufw allow from 173.245.48.0/20
sudo ufw allow from 103.21.244.0/22
…
确保服务器不会把 Cloudflare 的流量挡在外面。
3. 检查 SSL 模式是否匹配
Cloudflare 提供三种 SSL 模式:Flexible、Full 和 Full (Strict)。如果你开启了 Full 模式,而源站并没有配置好 SSL,那 Cloudflare 和服务器之间的 HTTPS 握手就会失败,最终报 521。
建议这样设置:
源站没有 SSL 证书 → 用 Flexible
源站有自签名证书 → 用 Full
源站有有效证书(如 Let’s Encrypt)→ 用 Full (Strict)
不要盲目使用 Full (Strict),先确认服务器端 SSL 真的配置好了。
4. 服务器资源是否过载
有时候服务器本身没宕机,但已经卡死。比如 CPU 100%、内存爆掉,导致 Web 服务无法及时响应 Cloudflare 的请求。这种情况也可能触发 521。
建议定期监控服务器资源:
安装 top、htop 或使用监控服务查看负载情况
设置服务器自动重启 Web 服务脚本
对于流量大的网站,加上缓存、限速或升级配置
5. 检查 Cloudflare 设置是否正确
有时候 DNS 设置错误,也可能引起连接失败。进入 Cloudflare 面板,查看:
A 记录是否指向正确的服务器 IP
是否开启了代理(橙色云图标状态)
是否使用了 Workers、Page Rules 等导致跳转错误
如果使用了第三方主机,确认 IP 没变动,有些虚拟主机在迁移后 IP 会重置,导致 DNS 指向失效。
6. 查看源站日志找出问题
最直接的方法就是看服务器的访问日志和错误日志,一般位于:
Apache:/var/log/apache2/error.log
Nginx:/var/log/nginx/error.log
结合 Cloudflare 报错时间,看是否有 403、timeout、TLS handshake fail 等信息。
如果你找到了 Cloudflare 的请求被拒绝或被阻止,就可以顺着这个方向解决。
总结
Error 521 是 Cloudflare 无法连接源服务器的典型报错,排查重点在于:源站是否在线、防火墙有没有拦截、SSL 设置是否匹配,以及 DNS 是否正确。只要源站保持稳定,网络通畅,配置合理,就能大大减少出现 521 的几率。