**502 错误意味着我们根本无法访问源 Web 服务器。  ** ![](https://box.kancloud.cn/39f8146293c81477f15572b0a7b1e2cf_1960x636.png) 有几个主要原因: * 源服务器超载,无法响应。 * 源 Web 服务器拥有防火墙,阻止了我们的请求,或数据包在主机网络中被丢弃。 * 源 Web 服务器处于离线状态,或我们在 DNS 设置中为其设置的 IP 地址不正确(即我们的请求被发送到错误的地方)。 * 我们与源 Web 服务器之间存在网络路由问题。 * 源服务器已禁用了保持连接状态。 在所有这些情况下,在进行进一步操作之前,有必要检查源 Web 服务器是否处于活动状态并接受 HTTP 请求,以及我们在您的帐户中设置的 DNS 设置正确无误。 # **源服务器超载,无法响应** 确保源服务器没有超载。如果超载,它可能会丢弃请求。一般来说,检查平均负载是一个不错的方法。在 Linux/Unix 上,您可以通过在命令行中运行“W”命令,或使用“top”命令进行检查。基于负载值构成高负载的内容可能因计算机及其上运行的软件而异,但一般来说,平均负载超过 10-20 左右可能意味着服务器超载。如果您不确定,最好检查主机或与系统管理员进行确认。 # **源服务器拥有将阻止我们的请求的防火墙(或速率限制器)** 这是间歇性 502 错误的最常见原因。初始重点检查事项为 - * 请确保未在 .htaccess、iptables 或您的防火墙中阻止 乌云盾 IP。 * 确保您的主机服提供商没有设置速率限制或阻止来自 乌云盾 IP 的 IP 请求,并要求他们将以下地址中提到的 IP 地址加入白名单: [http://doc.wafcloud.net/1032384](http://doc.wafcloud.net/1032384) 当流量流经 乌云盾 访问网站时,源服务器首先将请求视为我们发送的请求。大多数通过 乌云盾 向网站发出的请求将显示为来自我们的几个 IP 地址。正因为如此,这经常导致防火墙和 IP 速率限制器阻止我们发送的请求,认为该网站受到攻击。已知 CPHulk(与 cPanel 一起提供)和其他服务会有此行为。请首先阻止这种情况的发生,并确保在 [此处](http://doc.wafcloud.net/1032384) 提及的 IP 地址已加入白名单,或完全禁用速率限制器。 # **乌云盾 与源 Web 服务器之间存在网络路由问题** 此问题比由其他原因导致的问题更难解决,最好在检查此问题之前确保其他可能的原因都已排除。如果确信是这样,请向我们的支持团队提交技术支持请求。随附的有用信息如下 * 您目前已检查过的内容的信息。 * 您的服务器向我们的 IP 地址(最好是您过去收到我们的请求的 IP 地址之一)发送的 MTR 或跟踪路由。您可以在以下位置找到有关如何运行 MTR 或跟踪路由的详细信息: [此处](http://doc.wafcloud.net/1037323) **源服务器已禁用了保持连接状态。 ** 乌云盾 使用 [“保持连接状态”标头](https://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-01#Keep-Alive) 来提高性能。在某些情况下,禁用它会导致连接失败,并返回 502 错误。在大多数主要 Web 服务器的当前版本中,此功能在默认情况下处于启用状态,所以除非您明确禁用此功能,否则不会出现此问题。 # **触发 502 错误的真正原因是什么?** 当 乌云盾 无法建立与网站源服务器的 TCP 连接时,将返回 502 错误响应。 当用户访问启用了 乌云盾 的网站时, 乌云盾 与网站源服务器之间会建立连接。为建立连接,TCP 使用三次握手。 1. SYN:乌云盾 向源服务器发送三个 SYN 数据包。 2. SYN+ACK:作为响应,源服务器将回复 SYN+ACK。 3. ACK:最后,乌云盾 向源服务器发送回一个 ACK。 此时,乌云盾 和源服务器都已收到连接确认并建立了通信。如果源服务器未在 15 秒内向 乌云盾 发送回 SYN+ACK 包,将出现 522 错误,并关闭连接。 # **下面的图表将对成功 TCP 握手进行说明:** ![](https://support.cloudflare.com/hc/en-us/article_attachments/201844568/TCP-Handshake.png) 在下面的示例中,未在 15 秒内从源服务器返回 SYN+ACK,从而导致 502 超时: ![](https://support.cloudflare.com/hc/en-us/article_attachments/201844578/TCP-Handshake_02.png) 502 超时发生的另一个情况是,当源服务器响应 SYN+ACK 并建立 TCP 连接,但未在 90 秒内返回 ACK 来响应请求(524 的情况是发送了 ACK 请求,但等待时间太长,未发送响应)时。下面将说明该场景的详细信息: ![](https://support.cloudflare.com/hc/en-us/article_attachments/201814957/TCP-Handshake_03.png) 与您的服务器管理员核查这些条件或托管服务提供商是解决这些错误的最好方式。如果有网络问题,一个  [“路由跟踪”](http://doc.wafcloud.net/1037323) 或 MTR(来自站点源)将非常有用(链接到以下内容)。 如果在排除上述可能性并排除故障之后,仍能看到 502 错误,请联系 乌云盾 支持人员以进行进一步调查。