如何修复 WordPress 网站上的 502 Bad Gateway 错误

已发表: 2017-09-01

说到 WordPress,有很多不同的错误可能会让人非常沮丧和困惑。 一些浮现在脑海中的是死机白屏或建立数据库连接的可怕错误。 但更流行的是 502 bad gateway 错误。 为什么? 因为这种情况经常发生在整个网络上,不仅是 WordPress 网站,甚至是 Gmail、Twitter 和 Cloudflare 等流行服务。 但是,当然,我们真的只关心它如何影响您的 WordPress 网站。 阅读下面有关导致此错误的原因以及有关如何快速解决此错误的一些解决方案的更多信息。

  • 什么是 502 错误网关错误?
  • 如何修复 502 Bad Gateway 错误

什么是 502 错误网关错误?

502 Bad Gateway 错误具体表示服务器收到来自入站服务器的无效响应

Internet 工程任务组 (IETF) 将 502 Bad Gateway 错误定义为:

502 (Bad Gateway) 状态代码表示服务器在充当网关或代理时,在尝试满足请求时从它访问的入站服务器接收到无效响应。

每次您访问网站时,您的浏览器都会向网络服务器发送一个请求。 Web 服务器接收并处理请求,然后将请求的资源连同 HTTP 标头和 HTTP 状态代码一起发回。 通常,除非出现问题,否则不会看到 HTTP 状态代码。 它基本上是服务器通知您出现问题的方式,以及如何诊断它的代码。

500 状态错误代码有很多种(500、501、502、503、504、508、520 等),含义略有不同。 这些表示请求已被接受,但服务器阻止了请求的完成。

Chrome 中的 502 错误网关错误
Chrome 中的 502 错误网关错误

查看我们的 502 错误视频指南

502 错误网关错误变化

由于浏览器、Web 服务器和操作系统的不同,502 网关错误错误可能以多种不同的方式出现。 但它们都具有相同的含义。 以下只是您可能在网络上看到的许多不同变体中的几个:

  • “502错误的网关”
  • “错误 502”
  • “HTTP 错误 502 – 网关错误”
  • “502 服务暂时超载”
  • “502 代理错误”
  • 一个空白的白色屏幕
  • “502 服务器错误:服务器遇到临时错误,无法完成您的请求”
  • “HTTP 502”
  • 临时错误 (502)
  • 502. 这是一个错误
  • 502 网关错误 Cloudflare
  • 网关错误:代理服务器收到来自上游服务器的无效响应

您可能会看到的另一个变体是“502 服务器错误”。

Chrome 中的 502 服务器错误
Chrome 中的 502 服务器错误

这是另一个变体。 “502 – Web 服务器在充当网关或代理服务器时收到无效响应。 您要查找的页面有问题,无法显示。 当 Web 服务器(作为网关或代理)联系上游内容服务器时,它收到了来自内容服务器的无效响应。”

502- Web 服务器收到无效响应
502- Web 服务器收到无效响应

Twitter 等其他服务甚至可能会针对 502 Bad Gateway 错误显示完全不同的消息,例如“Twitter 容量过剩”。 这绝对看起来更加用户友好。

Twitter容量过剩
Twitter容量过剩(Img src:Softpedia)

这是谷歌如何显示它的快照。 “502。 那是一个错误。 服务器遇到临时错误,无法完成您的请求。 请在 30 秒后重试。 我们知道的就这些。”

谷歌 502 错误
谷歌 502 错误

502 错误对 SEO 的影响

与用于 WordPress 维护模式并告诉 Google 稍后再检查的 503 错误不同,如果不立即修复,502 错误可能会对 SEO 产生负面影响。 如果您的网站仅停机了 10 分钟,并且它被持续抓取了很多次,那么抓取工具只会从缓存中获取页面。 或者,谷歌甚至可能没有机会在它备份之前重新抓取它。 在这种情况下,你完全没问题。

但是,如果站点长时间关闭,例如超过 6 小时,则 Google 可能会将 502 错误视为需要解决的站点级别问题。 这可能会影响您的排名。 如果您担心重复 502 错误,您应该首先弄清楚它们发生的原因。 下面的一些解决方案可以提供帮助。

如何修复 502 Bad Gateway 错误

502 bad gateway 错误通常是网络/服务器的问题,但也可能是客户端问题。 所以我们将深入研究两者。 查看这些常见原因以及修复 502 bad gateway 错误并重新启动和运行的方法。

不要只管理您的网站错误——降低它们发生的风险。 免费试用 Kinsta。

1.尝试重新加载页面

遇到 502 bad gateway 错误时,您应该尝试的最简单和第一件事就是等待一分钟左右并重新加载页面(F5 或 Ctrl + F5)。 可能是主机或服务器只是过载了,该站点将立即恢复。 在等待期间,您也可以快速尝试使用其他浏览器来排除问题。

您可以做的另一件事是将网站粘贴到 downforeveryoneorjustme.com。 该网站会告诉您该网站是否已关闭或您是否有问题。

压倒所有人或只是我
压倒所有人或只是我

2.清除浏览器缓存

每当您遇到此类问题时,最好清除浏览器缓存。 以下是有关如何在各种浏览器中执行此操作的说明:

  • 如何为所有浏览器强制刷新单个页面
  • 如何清除谷歌浏览器的浏览器缓存
  • 如何清除 Mozilla Firefox 的浏览器缓存
  • 如何清除 Safari 的浏览器缓存
  • 如何清除 Internet Explorer 的浏览器缓存
  • 如何清除 Microsoft Edge 的浏览器缓存
  • 如何清除 Opera 的浏览器缓存

3. DNS 问题

502 网关错误也可能是由于 DNS 问题,例如域没有解析到正确的 IP,或者 DNS 服务器没有响应。 如果您刚刚将 WordPress 网站迁移到新主机,等待事情完全传播很重要,在某些情况下可能需要长达 24 小时。 这取决于您的 DNS 记录的 TTL 值。

您也可以尝试刷新本地 DNS 缓存。 这类似于清除浏览器缓存。

在 Windows 中,只需打开命令提示符并输入以下内容:

 ipconfig /flushdns 
命令提示符 - 刷新 DNS
命令提示符 - 刷新 DNS

如果有效,您应该会看到“已成功刷新 DNS 解析器缓存”。

对于 macOS 用户,您可以在终端中输入以下内容:

 dscacheutil -flushcache

注意:Mac 上没有成功消息。

最后,您可以临时更改您的 DNS 服务器。 默认情况下,DNS 服务器由您的 ISP 自动分配。 但是您可以尝试将这些临时更改为公共 DNS 服务器,例如 Google。 事实上,有些人更喜欢长期使用 Google 的公共 DNS。 如果您有高级 DNS 传播,通常会快很多。

4. 与您的房东核实

我们通常看到 502 bad gateway 错误的主要原因是 Web 主机出现问题。 有时查询、脚本或请求会花费太长时间,因此会被服务器取消或终止。 许多主机,尤其是共享主机实现了他们所谓的“终止脚本”。 基本上,它的作用是在一段时间后终止请求,这样它就不会关闭站点或影响其他用户。 如果你在 Twitter 上搜索“bad gateway”,你会看到每天都有成千上万条推文提醒他们的托管公司这个问题。

502 错误网关推文
502 错误网关推文

您可能要考虑迁移到 Kinsta 之类的主机的一个原因是,我们的平台运行在一个隔离的软件容器中,其中包含运行该站点所需的所有软件资源(Linux、NGINX、PHP、MySQL)。 这意味着运行每个站点的软件是 100% 私有的并且不共享,即使在您自己的站点之间也是如此。 这大大降低了看到 502 bad gateway 错误的机会。 我们没有像某些共享主机那样运行激进的终止脚本。 即使您的某个站点发生故障,也不会影响您的其他站点。

您可能会在主机上看到 502 网关错误的另一个原因也是由于服务器根本无法访问,或者因为它已关闭或没有连接。 在这种情况下,建议检查您的 WordPress 主机的状态页面或打开支持票。

5. 暂时禁用 CDN 或防火墙

这也可能是您的内容交付网络 (CDN) 或防火墙的问题。 如果您使用的是第 3 方 CDN 提供商,解决此问题的简单方法是暂时禁用您的 CDN。 例如,我们是免费 CDN 启用插件的忠实粉丝。 如果您正在使用它,您可以简单地停用该插件,然后测试您的网站。 wp-admin 不工作? 只需通过 SFTP 登录到您的站点并将插件的文件夹重命名为 cdn-enabler_old。 这将暂时禁用 CDN 连接。 WP Rocket 或您可能已连接到 CDN 的任何其他插件也是如此。

临时重命名插件文件夹
临时重命名插件文件夹

有时,提供 DDoS 保护和缓解或 Cloudflare 等完全代理服务的提供商也会发生这种情况,因为它们之间有额外的防火墙。 我们注意到在 Cloudflare 免费计划中偶尔会发生这种情况。 不幸的是,由于 Cloudflare 是一项完全代理服务,因此没有快速的方法可以简单地禁用它。

但是,在指责 Cloudflare 之前,重要的是要知道 Cloudflare 有两种不同类型的 502 错误网关错误变体,如下所示:

Cloudflare 的 502 错误网关(变体 1)

如果您看到以下屏幕,这实际上是 Cloudflare 的问题,在这种情况下,您应该联系他们寻求支持。 您还可以查看 Cloudflare 的状态页面,了解他们当前是否遇到中断。

502 网关错误
502 网关错误

Cloudflare 的 502 错误网关(变体 2)

如果您看到以下屏幕,则说明您的主机有问题。

Cloudflare 502 主机上的网关错误
Cloudflare 502 主机上的网关错误

GoDaddy 防火墙

这是 HTTP 502 错误和 GoDaddy 防火墙的另一个示例。 由于超时,问题实际上与原始服务器(托管服务提供商)有关,而不是防火墙本身。

HTTP 502 - GoDaddy 防火墙
HTTP 502 – GoDaddy 防火墙

6. 检查你的插件和主题

很多时候,服务器取消脚本和查询的原因是由于 WordPress 网站上的错误代码,可能来自 3rd 方插件或主题。 我们还看到很多配置错误的缓存插件会产生 502 错误。 解决此问题的几种方法是停用所有插件。 请记住,如果您只是停用插件,您不会丢失任何数据。

不要只管理您的网站错误——降低它们发生的风险。 免费试用 Kinsta。

如果您仍然可以访问您的管理员,一个快速的方法是浏览到“插件”并从批量操作菜单中选择“停用”。 这将禁用所有插件。 如果这解决了问题,您将需要找到罪魁祸首。 开始一一激活,每次激活后重新加载站点。 当您看到 502 网关错误返回时,您已经找到了行为不端的插件。 然后,您可以联系插件开发人员寻求帮助或在 WordPress 存储库中发布支持票。

停用所有插件
停用所有插件

如果您无法访问您的管理员,您可以通过 FTP 访问您的服务器并将您的插件文件夹重命名为 plugins_old 之类的名称。 然后再次检查您的网站。 如果它有效,那么您将需要一个一个地测试每个插件。 将您的插件文件夹重命名为“plugins”,然后将其中的每个插件文件夹一一重命名,直到找到它为止。

重命名插件文件夹
重命名插件文件夹

始终确保您的插件、主题和 WordPress 核心是最新的。 并检查以确保您正在运行受支持的 PHP 版本。 您可以随时联系您的房东寻求帮助。 我们在 Kinsta 使用 Kinsta APM 和其他故障排除方法来帮助客户缩小可能导致错误的插件、查询或脚本的范围。 如果您有自己的许可证,也可以使用自己的自定义 New Relic 密钥。

对数据库的耗时查询
对数据库的耗时查询

如果结果证明是插件中的有效查询或错误代码,您可能需要引入 WordPress 开发人员来解决问题。

7.检查日志

您还应该利用错误日志。 如果您是 Kinsta 客户端,您可以在 MyKinsta 仪表板的日志查看器中轻松查看错误。 这可以帮助您快速缩小问题范围,特别是如果它是由您网站上的插件引起的。

检查错误日志以了解 502 错误网关错误
检查错误日志以了解 502 错误网关错误

如果您的主机没有日志记录工具,您还可以将以下代码添加到 wp-config.php 文件以启用日志记录:

 define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );

如果您需要有关如何启用 WordPress 调试模式的更多帮助,这里有一个完整的分步教程。

日志通常位于 /wp-content 目录中。 其他人,比如 Kinsta 的这里,可能有一个名为“logs”的专用文件夹。

wordpress 错误日志文件夹 sftp

您还可以查看 Apache 和 NGINX 中的日志文件,这些文件通常位于此处:

  • 阿帕奇: /var/log/apache2/error.log
  • NGINX: /var/log/nginx/error.log

如果您是 Kinsta 客户,您还可以利用我们的分析工具来细分 502 错误的总数,并查看它们发生的频率和时间。 如果这是一个持续存在的问题,或者可能已经自行解决,这可以帮助您进行故障排除。

响应分析500错误分解
响应分析500错误分解

8.重启PHP

最后,您也可以尝试重新启动 PHP。 如果您是 Kinsta 客户端,您可以轻松地从 MyKinsta 仪表板中的工具菜单重新启动 PHP。 如果您的主机不提供此功能,您可以随时打开支持票并要求他们重新启动 PHP。

重启 PHP
重启 PHP

9. PHP 超时问题

如果单个 PHP 进程运行的时间超过服务器上 PHP 配置中设置的max_execution_timemax_input_time ,则会发生 PHP 超时。 如果您正在执行大型 WordPress 导入,这很常见。 发生这种情况时,通常会显示 502 服务器错误。 如果遇到 PHP 超时,可能需要提升这些值。

您可以向您当前的 WordPress 主机查询您的服务器上设置了哪些值以及是否可以增加这些值。 在 Kinsta 平台上,这些值默认设置为 300 秒(5 分钟)。 我们平台上可用的最大 PHP 超时值取决于您当前的托管计划。

概括

如您所见,您可以做很多事情来解决和修复 WordPress 网站上的 502 网关错误。 通常这不是在客户端,而是您的主机的问题。 带有错误代码或未优化查询的第三方插件和主题也是需要注意的。 我们错过了什么吗? 也许您有另一个解决 502 网关错误的技巧。 如果是这样,请在下面的评论中告诉我们。