如何解决WordPress网站的Cloudflare返回521错误

 

错误类型:
服务器错误
错误名称:
Cloudflare 521错误
英文名称:
Error 521
错误描述:
由于Cloudflare无法连接到您的站点,因此无法向访问者显示您的站点,而是显示521错误消息。

521-error-wordpress-cloudflare-1024x512-1.pngo_

在WordPress网站上使用Cloudflare等内容交付网络 (CDN)可以帮助您大幅减少加载时间。但是,您可能偶尔会遇到Cloudflare特定的问题,例如“521错误”。此特定错误会阻止平台连接到您的网站,这意味着您可能也无法访问网站。

在本文中,我们将讨论Cloudflare反馈521错误是什么以及导致它的原因。然后我们将介绍三种方法来修复它。

Cloudflare的521错误是什么?

像Cloudflare这样的CDN将您网站的缓存副本存储在位于全球各地的服务器网络上。当访问者尝试访问您的网站时,Cloudflare 会“拦截”该连接并从最接近其位置的服务器加载缓存副本。这种方法通常会加快加载速度,同时降低站点主服务器的工作量。

正如您在上面了解到的,521错误消息是特定于Cloudflare的错误消息。

从本质上讲,这意味着您的Web浏览器能够成功连接到Cloudflare,但Cloudflare无法连接到源Web服务器 – 也就是您的WordPress站点的服务器。

具体来说,Cloudflare尝试连接到您的WordPress站点的服务器,但收到连接拒绝错误作为响应。

由于Cloudflare无法连接到您的站点,因此无法向访问者显示您的站点,而是显示521错误消息:

error-521.pngo_

默认情况下,Cloudflare会告诉您它无法连接到网站的服务器,因为该服务器已关闭。但是,CDN可能无法连接到您的站点还有其他几个潜在原因。

在我们讨论这些原因之前,重要的是要注意521错误不是特定于WordPress的。无论您使用什么内容管理系统 (CMS)以及在外部网站上,您都可能遇到此错误。但是,您使用WordPress的事实为您提供了一种解决问题的额外方法,我们将在后面详细介绍。

什么导致Cloudflare返回521错误

正如我们之前提到的,当Cloudflare无法与您网站的服务器建立连接时,会发生521错误。通常,发生这种情况是由于以下三个原因之一:

  1. 您网站服务器已关闭。即使其他一切配置正确,如果您的WordPress站点的服务器处于离线状态,Cloudflare也将无法连接。如果您使用的是信誉良好的WordPress服务器主机,您应该拥有近乎完美的正常运行时间率(大约 99.9%)。这意味着在大多数情况下,服务器停机不是521错误背后的根本原因。
  2. 您服务器可能阻止Cloudflare请求。 您的Web服务器可能运行良好,但由于某种原因阻止了Cloudflare的请求。由于Cloudflare的工作方式,某些服务器端安全解决方案可能会无意中拦截Cloudflare的IP地址。比如,一些防火墙会阻止他们认为可疑的 IP,而Cloudflare请求可能会被该网络捕获。因为Cloudflare是一个反向代理,所以进入您的源服务器的所有流量看起来都好像来自一小范围的Cloudflare IP(而不是每个访问者的唯一IP地址)。因此,一些安全解决方案会将来自有限数量IP地址的高流量视为攻击并阻止它们。
  3. 您的Cloudflare证书有问题。Cloudflare 可以使用自己的安全套接字层 (SSL) 证书对您的网站与其服务器之间的流量进行加密。如果该证书有问题,源服务器可能会拒绝连接。

这似乎有很多潜在的领域需要覆盖。但是,在故障排除过程中,大多数这些原因很容易排除,我们将在下一节中讨论。

如何修复Cloudflare返回521错误

现在我们已经介绍了基础知识,我们将向您介绍如何解决WordPress中的Cloudflare返回的521错误。我们将逐步完成整个过程,首先排除最常见的原因(也是最容易修复的)。让我们从检查您网站的服务器是否已关闭开始。

1. 查明您站点的服务器是否停机

在信誉良好的托管服务提供商中,服务器停机是相当罕见的。许多提供商都吹嘘近乎完美的正常运行时间。因此,除非您使用的是不可靠的 Web 主机,否则您可以将其排除为521错误的根源。

在继续之前,您需要确保您的WordPress站点的服务器在线且运行正常。如果不是,则深入研究进一步的故障排除步骤是没有意义的。

但是,确保这不是问题仍然是一个好主意,特别是如果您不熟悉当前的托管服务提供商。如果由于错误521而无法访问您的网站,还有其他方法可以检查它是否在线。例如,您可以在命令终端中使用ping 命令,无论您使用的是哪种操作系统 (OS),它都应该可以工作。

Ping命令运行一个简单的测试,以确定服务器是否可达,并确保你没有任何连接问题。例如,这里我们正在为Google.com运行一个简单的ping 测试(通过输入“ping google.com”):

ping-google-1.pngo_

如果您收到来自服务器的回复,则它已启动并可访问。

查看服务器是否关闭的另一种方法是使用免费的在线服务,例如IsItDownRightNow?这个工具可以让你输入任何你想要的URL,并检查它是否可以访问:

is-google-up-1.pngo_

你还可以运行cURL命令。如果您使用的是Mac或Linux,则可以直接从终端运行它。

Windows默认没有安装cURL,虽然您可以安装它,但更简单的方法是使用KeyCDN的在线HTTP标头检查工具。

您所做的只是插入http://1.2.3.4,其中1.2.3.4是您服务器的实际IP地址。

error-521-cloudflare-wordpress-2-1024x569.pngo_

KeyCDN标头检查工具

如果您的服务器已启动,您应该会看到HTTP 200响应。或者,您也可能看到404 Not Found,这也意味着网络服务器已启动(只是没有与该IP关联的页面):

error-521-cloudflare-wordpress-4-1024x325.pngo_

成功连接的示例

如果出现问题,您会看到类似Host Not FoundFailed to connect的信息:

error-521-cloudflare-wordpress-5-1024x237.pngo_

您的服务器出现问题的示例

如果服务说该网站已启动,那么您就可以开始了。这意味着您的521错误的原因在于其他地方。如果您的服务器由于某种原因停机,您需要与您的托管服务提供商联系以找出原因。

2. 移除 Cloudflare 和您网站之间的拦截

如果您的网站在线,错误 521 可能是由于错误配置导致 Cloudflare 无法访问您的网站文件。

问题可能出在您的 .htaccess 文件、IP Blocker 规则或安全插件中。让我们看看如何逐一修复。

2.1 将Cloudflare IP范围列入白名单

您可以尝试的下一个修复是确保您的服务器的防火墙知道让Cloudflare请求通过。根据您使用的托管计划类型,您可能无法手动更改服务器的配置。例如,在大多数共享和托管计划中,您将无法修改服务器的防火墙设置。

如果您使用的是非托管虚拟专用服务器 (VPS)或专用服务器,您应该拥有对必要选项的完全访问权限。如果您使用防火墙,则可以修改其设置并将Cloudflare的IP范围列入白名单。

您需要确保没有在.htaccessiptables或防火墙中阻止这些IP地址。而且您还需要确保您的托管服务提供商不会限制或阻止来自Cloudflare IP地址的IP请求。如果您不确定如何执行此操作,请联系您的主机支持人员。

或者,您可以联系您的托管服务提供商,让他们检查服务器的防火墙是否阻止了Cloudflare的任何地址。由于CDN的流行,情况不应该是这样。但是,您的网络托管服务商的支持团队将能够给您一个明确的答案。

下面介绍如何在服务器配置中将 IP 地址列入白名单:

1. 通过 FTP 客户端或使用 cPanel 中的文件管理器打开 .htaccess 文件。

7045d33567924fc2ab9c9e6985586a800b33a3d2-1600x862-1-1024x552-1

2. 添加以下代码:

order deny, allow
deny from all

3. 从 [Cloudflare IP 地址] 添加允许。将 [Cloudflare IP 地址] 替换为每行中的一个实际 IP 地址,如下图所示。

442ca1674723f2f3d60ea337b38534af923e1fc1-700x537-1.jpgo_

4. 保存 .htaccess 文件。

2.2 检查 IP Blocker 设置

如果您使用的是基于 cPanel 的主机,IP Blocker 可以帮助您从特定 IP 地址或 IP 地址范围阻止您的网站。

查看 IP Blocker 设置,确保管理员没有错误地添加 Cloudflare IP 范围。

e0559beabb595a959f836f388d6fade643e57190-1458x1287-1-1024x904-1

2.3 禁用您的安全插件

您的安全或防火墙插件有可能阻止了 Cloudflare 请求。要排除这种可能性,请禁用该插件,看看是否能解决错误 521。如果可以,请联系插件开发人员或更换安全插件。

3. 设置Cloudflare Origin 证书

Cloudflare使您能够配置CDN应如何处理 SSL 证书。它为您提供了多种SSL模式选项,包括:

  • Flexible。在此模式下,Cloudflare 将使用 HTTP 连接到您的网站。理想情况下,除非您尚未为网站设置 SSL 证书,否则不应使用此模式。
  • Full。此模式让用户决定是使用HTTP还是HTTPS连接您的网站。但是,如果他们使用HTTPS,Cloudflare将不会验证您网站的证书。
  • Strict。此模式还使访问者能够决定使用哪种协议。但是,它会告诉Cloudflare检查您网站证书的有效性。

64ced49b9b98b71bd043730bf93aa4de52ac8e49-1253x589-1-1024x481-1

如果您的证书存在导致521错误的问题,通常会在您使用 Full (strict) 模式时发生。这是因为Cloudflare还需要在其末端使用原始证书来加密与您网站的流量。

如果您网站的 SSL 证书过期、自签名或与域名不匹配,Cloudflare 就会切断连接。在这种情况下,您的访客将在浏览器中看到错误 521。

您可能需要在服务器上安装 Cloudflare 起源证书颁发机构 (CA) 证书来解决这个问题。您可以通过导航至 [yourwebsite.com] > SSL/TLS > Origin server 并单击 Create certificate 来获取 Cloudflare Origin CA 证书。

8a9fd9ecf9de9ce2ae22815a3d39e750c0b5e362-1600x560-1-1024x358-1

之后,您可以按照托管服务提供商的指示,将 Cloudflare 起源证书添加到您的网站服务器上。

生成Cloudflare源证书很简单,一旦你这样做了,你应该能够访问你的网站,而不会出现错误521。如果您站点的证书有问题,您将看到完全不同的错误代码(526错误)。

不过,如果你管理的是敏感数据或需要遵守 PCI-DSS 要求,最好还是使用高级 SSL 证书。

4. 查看 Cloudflare DNS 设置

登录 Cloudflare 帐户并导航至 [yourwebsite.com] > DNS > Records

然后,确保所有 A 记录的内容都与源网站服务器的 IP 地址相匹配,并且 CNAME 记录的内容包含您网站的域名。

5aa8c83974fa0e0e6db72fc22913d0412ddf981d-1600x577-1-1024x369-1

如果其中一条记录不正确,您可以单击 “Edit” 修改该记录。

6ed5438b77bf22584347d8bf79e9839a591b3f21-1386x545-1-1024x403-1

5. 停用 mod_reqtimeout 和 mod_antiloris

您可能在 Apache HTTP 服务器上启用了 mod_reqtimeout 和 mod_antiloris 模块,以防止拒绝服务(DoS)和分布式拒绝服务(DDoS)攻击。这些模块通过限制 IP 服务器与服务器的连接次数,使网络服务器免受这些攻击。

虽然 mod_reqtimeout 和 mod_antiloris 可以保护您的托管服务器,但它们可能与 Cloudflare 存在不兼容问题。

例如,Cloudflare 依靠数量有限的 IP 地址来引导流量到您的服务器,但这些模块可能会因为连续的连接尝试而阻止这些地址。

6. 联系客户支持

如果上述解决方案对您都不起作用,那么是时候寻求外部帮助了。

如果您的网站在没有 Cloudflare CDN 的情况下也能正常运行,请导航到 Support Contact Cloudflare 通过 “ticket”、”chat” 或 phone 获取 Cloudflare 的支持。

如果网站托管服务器出现故障,请联系网站托管提供商的支持团队。

小结

如果您将Cloudflare与WordPress一起使用,您可能会遇到521错误。当Cloudflare无法与您网站的服务器建立连接时,会出现此特定错误代码。这可能是因为服务器已关闭、其防火墙阻止了Cloudflare,或者其SSL证书存在问题。

总而言之,您可以通过以下方式对Cloudflare中的521错误进行故障排除:

  1. 检查您站点的服务器是否已关闭。
  2. 配置您服务器的防火墙以将Cloudflare IP范围列入白名单。
  3. 设置Cloudflare源证书。
文章网址:https://www.wpbull.com/jiqiao/4573.html