错误 521:Web 服务器已关闭

当您使用 Cloudflare 访问网站时,您可能会收到错误 521。出现该错误是因为源 Web 服务器拒绝了与 Cloudflare 的连接。

出现 521 错误是因为源 Web 服务器拒绝了与 Cloudflare 的连接。这意味着我们尝试连接到您的源服务器的端口 80 或 443,但收到了“连接被拒绝”错误。

这通常会在以下两种情况下发生:

  • 源 Web 服务器进程(如 Apache 或 Nginx )未在运行或已崩溃。您应检查您的 Web 服务器是否正常运行。您可能还需要检查服务器的错误日志,看看是什么原因导致此问题。如果您不知道如何操作,或者无权访问日志,您的主机应该能够为您提供咨询。
  • Web 服务器或托管提供商的网络上的某些设备阻止了 Cloudflare 的请求。由于 Cloudflare 作为一个反向代理,所有与您服务器的连接均来自 Cloudflare IP。因为流量相同,但现在 IP 数量减少,服务器端的安全解决方案将这种来自少量 IP 的合理连接增长误认为是攻击。这导致我们的一些 IP 被阻止或限制速率。

确保我们的 IP 范围在您的服务器防火墙或可能运行的任何安全软件中加入白名单。我们的 IP 范围可在此处找到:

https://www.cloudflare.com/ips

高级用户:如何针对您的服务器进行测试

 您可以使用“curl”命令(可以通过 Mac OSX 或 Linux 上的终端访问)测试您的源服务器是否有响应。curl 允许您模拟 HTTP 请求,因此这是检查您的源服务器是否正常工作的有用工具。

 您应该对您的服务器 IP 运行curl(即域的 A 记录或 CNAME,如 Cloudflare DNS 页面所示)。

curl http://1.2.3.4 -v 

如果正常工作,您应该会看到“HTTP 200”响应和您的网站的 HTML。失败的 curl 如下所示:

# curl 1.2.3.4

curl: (7) Failed to connect to 1.2.3.4 port 80: Connection refused

Windows 用户也可以进行测试,看看它们是否能够使用远程登录(通过命令提示)进行连接。您运行的命令将如下所示:

telnet 1.2.3.4 80

您应该将 1.2.3.4 更改为您的服务器的源 IP。如果收到错误消息,如“无法连接到远程主机:连接被拒绝”,这意味着您的 Web 服务器未在运行或者正在阻止请求。

失败的远程登录(拒绝连接)将如下所示:

# telnet 1.2.3.4 80

Trying 1.2.3.4...

telnet: connect to address 1.2.3.4: Connection refused

telnet: Unable to connect to remote host

Still not finding what you need?

The Cloudflare team is here to help. 95% of questions can be answered using the search tool, but if you can’t find what you need, submit a support request.

由 Zendesk 提供技术支持