如何修复 Cloudflare 错误 521? 8种快速方法

已发表: 2023-12-29

如果您看到这篇文章,则表示您和您的网站访问者在 Web 浏览器上遇到了一条错误消息,即“错误代码 521 Cloudflare”或“错误 521:Web 服务器已关闭”。

当源 Web 服务器拒绝来自 Cloudflare 的连接时,会出现错误 521。 它仅表明该网站遇到服务器端问题,并且在与 Cloudflare 集成的网站中很常见。

我们知道此类停机会严重影响您的网站流量和收入,因此我们在这里提出了一些简单的解决方案来修复错误代码 521 Cloudflare 及其真正含义。 那么,事不宜迟,让我们开始吧。


目录
什么是错误代码 521?
521错误的原因是什么?
如何修复错误代码 521?
概括
经常问的问题

什么是错误代码 521?

错误代码 521 表示 Cloudflare 无法访问源服务器或您的网站服务器。 换句话说,您可以理解客户端的请求已到达内容分发网络服务器,但进一步理解 CDN 或 Cloudflare 的请求已被网站服务器/源服务器拒绝。

发生这种情况的原因如下:


521错误的原因是什么?

以下是源服务器不接受 Cloudflare 请求的一些可能的错误。

1.服务器配置不正确:服务器必须正确配置才能与 CDN 配合使用,否则可能会触发错误代码 521。

2 . Web 服务器离线:您的 Web 托管也可能遇到停机问题。 在这种情况下,Cloudflare 向服务器发出的所有请求都将无效。 此外,如果 Nginx Web 服务器突然停止工作,您可能会遇到“Web 服务器已关闭,错误代码 521 nginx”错误消息。

专业提示:强烈建议您选择更可靠、更高正常运行时间的网络托管服务,例如 WPOven,其正常运行时间记录高达 99.99%

3. 加密设置问题 Cloudflare 或 CDN 以其出色的安全功能而闻名,这要归功于其 SSL 证书和加密协议。 无论如何,如果您配置不正确,Web 服务器或源服务器可能会阻止请求,从而导致错误 521。

4.服务器阻止 Cloudflare IP 地址:当客户端或用户发出请求时,必须经过 Cloudflare IP 地址。 如果源站服务器或网站服务器配置严格,它将阻止任何发送过多请求的 IP 地址。

5. DDoS 防护:如果您的网站受到 DDoS(即分布式拒绝服务)攻击,网站服务器也可能会阻止从 Cloudflare 接收的流量作为安全措施。


如何修复错误代码 521?

现在您知道错误代码 521 到底意味着什么,是时候了解如何轻松修复它了。

  • 检查您的网站是否在线
  • 查看 Cloudflare 加密设置
  • 检查您的 Cloudflare DNS 设置
  • 将 Cloudflare IP 地址和端口列入白名单
  • 验证 Mod_security
  • 禁用 mod_reqtimeout 和 mod_antiloris
  • 检查轨道炮设置
  • 联系支持人员

1.检查您的网站是否在线

由于错误代码 521 与 Cloudflare 有关,Cloudflare 充当用户和网站之间的桥梁。

用户必须通过这座桥才能到达另一端的网站。 因此,如果您或您的访问者遇到错误代码 521,您需要做的第一件事就是检查源服务器是否在线。

为此,您可以使用 cURL 来确定网站的 HTTP 状态。 请按照以下步骤操作:

第 1 步:打开命令提示符(对于 Windows 用户)或终端(macOS 或 Linux 用户)。

步骤2:复制以下curl命令并将其粘贴到其中。

curl --silent --output /dev/null --write-out "%{http_code}" https://yourdomain.com

注意:此处将“https://yourdomain.com”替换为您的网站。

您将得到类似于下图的输出。

 cURL command to check server status
cURL 命令检查服务器状态

但是,如果您不喜欢使用命令提示符或终端来检查标头,我们有一个专用的 HTTP 标头在线检查工具。

或者,您也可以通过 PING 工具来检查服务器的状态。

运行 ping 命令后,输出如下所示。

PING command to see the status of Server
PING 命令查看服务器状态

在输出中,您可以看到以下第一行包含服务器的主机名和传输给它的字节。

表示来自服务器的回显回复,通常由三部分组成,即字节、时间和TTL。

现在,数据包行指示传输、接收和丢失的数据包数量。 如果任何数据包显示丢失,则表示存在网络问题。

在 Ping 输出中,最后一行显示近似 RTT(以毫秒为单位)。 它表示连接速度,应该较低。 平均时间越短,与服务器的连接速度就越快。

但假设 ping 结果或输出显示请求超时消息。 如果出现这种情况,很简单,就是域名不存在、网卡故障、服务器暂时宕机等各种问题。

2. 检查 Cloudflare 加密设置

如果您尚未在 Cloudflare 帐户中正确配置 SSL/TLS 设置,则可能会出现 521 错误代码。 出现此问题的原因是 Cloudflare 的加密模式促进了 CDN 和源服务器之间的连接。 如果配置不正确,源 Web 服务器可能会拒绝来自 Cloudflare 的连接。

Cloudflare encryption Settings
Cloudflare 加密设置

你会发现加密模式如下:

  • 关闭(不安全):此特定模式意味着 Cloudflare 不在访问者和 Cloudflare 网络之间提供任何加密或安全层。 一般用于那些与敏感信息无关的网站。
  • 灵活的 SSL:此模式帮助 Cloudflare 加密访问者与 Cloudflare 之间的通信。 但这里有一个问题,Cloudflare 和 Web 源服务器之间的连接仍然未加密。
  • 完整 SSL:与灵活 SSL 不同,加密是端到端完成的。 这意味着 Cloudflare 会加密访问者与 Cloudflare 之间的通信,也会加密 Cloudflare 与源服务器之间的通信。
  • 完整 SSL(严格):此模式与完整 SSL 模式相同,但具有额外的安全级别。 即源服务器还必须具有有效的 SSL 证书以及 Cloudflare 上匹配的域名。

3. 检查您的 Cloudflare DNS 设置

您的 Cloudflare DNS 设置也可能出现一些配置错误。 因此,您需要立即检查并核实。

为此,请登录您的Cloudflare 帐户 > yourdomain.com > DNS > 记录。

在“记录”页面中,确保所有A记录的内容包含相同的源站IP地址,并且CNAME的内容应该是您的域名。

A records in Cloudflare
Cloudflare 中的 A 记录

万一您发现其中一条记录不匹配,您可以通过单击编辑选项轻松对其进行更改。

4. 将 Cloudflare IP 地址和端口列入白名单

Cloudflare 充当私有防火墙和 Web 源服务器之间的中间人。 当用户请求网页时,每个请求都必须首先经过 Cloudflare,然后通过一组特殊的 IP 地址发送到源服务器。

但如果有任何因素干扰 Cloudflare 和源服务器之间的通信,则会导致错误代码 521。

出现此干扰或问题的原因如下:

  • .htaccess 文件
  • IP 拦截器规则
  • 严格的防火墙规则
  • 安全插件
  • 用于 Cloudflare 与源服务器通信的已禁用端口

让我们看看如何解决每一个问题。

4.1 检查 .htaccess 文件和防火墙规则以及白名单 Cloudflare IP 地址

您需要按照以下步骤将 Cloudflare IP 地址列入白名单。

A。 您需要做的第一件事是通过 FTP 客户端或使用 cPanel 中的文件管理器访问 .htaccess 文件。

b. 现在向其中添加以下代码行,并添加以空格分隔的 IP 地址。

order deny, allow
deny from all

C。 现在保存您的 .htaccess 文件,您就完成了。


注意:如果您不知道如何访问和编辑 .htaccess 文件,请查看我们的指南“WordPress .htaccess 文件:如何创建和编辑它?”


4.2 检查您的 IP 拦截器设置

如果您的网络主机为您提供 cPanel 访问权限,则 IP 拦截器功能会对您非常有帮助。 它可以帮助网络管理员阻止您网站上的特定 IP 地址或一系列 IP 地址。

IP Blocker
IP拦截器

如果您的网站由多个管理员管理,则有人可能会错误地将 Cloudflare IP 范围添加到阻止列表中。 因此,您需要检查 IP 拦截器设置并检查这是否是问题所在。

4.3 停用您的安全插件

如果您使用任何安全插件,这也可能是阻止 Cloudflare 请求的原因。 为了消除您对是否是导致问题的疑问,最好先禁用该插件,然后查看错误是否仍然存在。

如果错误消失,则意味着该插件是罪魁祸首,您应该联系插件作者或尝试其他插件。

5. 验证Mod_security

如果 Apache 的开源 Web 应用程序防火墙模块 Mod_security 充当源服务器的防火墙,并且其配置不允许 Cloudflare 的请求,则可能会导致错误代码 521。

如果这是原因,您需要确保使用最新版本的 mod_security 并正确配置其设置。

6. 禁用 mod_reqtimeout 和 mod_antiloris

出于安全原因,您可能已在 Apache 服务器中激活 mod_reqtimeout 和 mod_antiloris 模块以防止 DDoS 或 DoS 攻击。 这些模块会减少一段时间内 IP 服务器与您的服务器之间的连接数量。

毫无疑问,这些模块有助于保护您的服务器免受这些攻击,但它也可能导致与 Cloudflare 的兼容性问题,从而导致错误代码 521。

要解决此问题,您能做的最好的事情就是禁用并卸载这些模块。

7. 检查 Railgun 设置

Railgun 是 Cloudflare 提供的一项 Web 优化技术,最适合用于加速动态内容的交付。
如果 Railgun 未正确配置,则会显示错误消息“错误 521: railgun.wan_error 连接失败”。

因此,要解决此问题,请禁用 Railgun 一段时间,以便您可以访问网站并检查配置。 如果您发现执行此操作有任何困难,请联系 Cloudflare 支持寻求帮助。

8.联系支持人员

如果上述方法都无法帮助您修复错误 521,您可以做的最后但并非最不重要的一件事是联系 Cloudflare 支持。

如果网站服务器出现故障,您可以联系您的网络托管提供商并寻求帮助。


概括

如果您经营一家在线商店或企业,那么每一秒都很重要。 您不能简单地离开您的网站,因为它会在屏幕上显示错误代码 521。 等待的时间越长,损失就越大。

因此,最好尽快采取以下故障排除方法:

1.检查您的网站是否在线

2. 检查 Cloudflare 加密设置

3. 检查您的 Cloudflare DNS 设置

4. 将 Cloudflare IP 地址和端口列入白名单

5. 验证Mod_security

6. 禁用 mod_reqtimeout 和 mod_antiloris

7. 检查 Railgun 设置

8.联系支持人员


经常问的问题

如何修复 521 错误?

修复错误代码 521 的 8 种快速方法:
1.检查您的网站是否在线
2. 检查 Cloudflare 加密设置
3. 检查您的 Cloudflare DNS 设置
4. 将 Cloudflare IP 地址和端口列入白名单
5. 验证Mod_security
6. 禁用 mod_reqtimeout 和 mod_antiloris
7. 检查 Railgun 设置
8.联系支持人员

Chrome 上的错误代码 521 是什么?

错误代码 521 表示 Cloudflare 无法访问源服务器或您的网站服务器。 换句话说,您可以理解客户端的请求已到达内容分发网络服务器,但进一步理解 CDN 或 Cloudflare 的请求已被网站服务器/源服务器拒绝。