你正在用 Cloudflare 给自己的网站加速,突然弹出一个“Error 521 – Web Server Is Down”的页面,这其实是个挺常见的问题,要搞清楚发生了什么面,就去看服务器日志。
什么是 Error 521?
Cloudflare 已经成功联系上了你的服务器 IP,但服务器没给它任何回应,像是“门口有人敲门,屋里没人答应”。大概率是以下几种情况:
服务器的 Web 服务(比如 Nginx 或 Apache)没启动
防火墙把 Cloudflare 的 IP 拦了
端口没开放
有个配置出错导致请求直接被拒绝
接下来咱们看日志怎么一步步帮你揭开谜底。
第一步:确定你在哪种环境下运行网站
这个很关键。不同环境,日志位置也不一样。
如果你用的是宝塔面板,日志可以在网站管理页面找到
如果是 VPS,自建 Nginx 或 Apache,一般日志在 /var/log/nginx/ 或 /var/log/apache2/
如果你用的是虚拟主机,可能得登录控制面板找“错误日志”或“Raw Logs”这类入口
总之,搞清楚你的 Web 服务软件和系统架构,才能顺利找日志。
第二步:看访问日志 access.log
这个日志记录的是“谁访问了你的网站”和“访问结果”。
你可以用命令查看最近几分钟的请求:
tail -n 100 /var/log/nginx/access.log
如果你发现 Cloudflare 的 IP 发出请求了,但服务器返回了 502、499 或直接没有响应,那么说明请求到了,但没被处理好。
第三步:重点查看错误日志 error.log
这才是排查 Error 521 的重头戏。
看命令:
tail -n 100 /var/log/nginx/error.log
你可能会看到类似的内容:
[error] 12345#0: *67 connect() failed (111: Connection refused) while connecting to upstream
看到这句“Connection refused”了吗?就是服务器不理 Cloudflare 的根本原因。
或者还有这种:
[crit] 23456#0: *89 SSL_do_handshake() failed
这就可能是 SSL 设置有问题,Cloudflare 和服务器之间的 HTTPS 没办法连接。
第四步:对照时间点找线索
你不可能从一大堆日志中翻完所有内容。所以你要做的是:
记下出现 Error 521 的大概时间
去日志里搜索那个时间点附近的记录
看看有没有特别频繁的请求、异常的状态码、重启记录等
这时候如果你看到某个插件请求太频繁、某个端口报错,那就基本锁定问题范围了。
第五步:防火墙和端口也查一查
别光盯着日志,有时候是服务器拦了 Cloudflare 的 IP。你可以看看你的防火墙设置:sudo ufw status
或者:iptables -L
确认 80 和 443 是开放的,同时确保没有把 Cloudflare 的 IP 段封掉。
Cloudflare 的官方文档有所有 IP 段列表建议直接全加白名单。
第六步:重启一下 Web 服务试试看
有时候 Web 服务突然挂掉了,简单一招就能搞定:
sudo systemctl restart nginx
或者用 Apache:
sudo systemctl restart apache2
重启之后再看看日志,有没有新的提示。
第七步:开启更详细的日志(可选)
如果普通日志看不出问题,可以临时提高日志级别,比如把 nginx 的日志级别设成 debug,再重现一次访问异常,再回来看日志,很可能就能看到关键线索了。
当然,调试完记得改回去,不然日志会疯狂占用硬盘空间。
总结
解决 Error 521 的核心就是搞清楚你用的是什么服务器,找到 access.log 和 error.log,锁定出问题的时间点,然后顺着信息一点点往下查。配合重启服务、检查防火墙、白名单设置,基本都能搞定。