通过服务器日志解决 Error 521 报错的方法

你正在用 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,锁定出问题的时间点,然后顺着信息一点点往下查。配合重启服务、检查防火墙、白名单设置,基本都能搞定。

Leave a Reply

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