解决 Error 521 状态码:避免 Cloudflare 无法连接源站的方法

当你用 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 的几率。

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注