当涉及到WordPress时,会有很多不同的错误,这些错误可能会让您感到沮丧和困惑。想到的是死亡的  白屏  或建立数据库连接的可怕  错误。但是更受欢迎的是502错误网关错误。为什么?因为这种情况经常发生在整个网络上,不仅在WordPress网站上,甚至在Gmail,Twitter和Cloudflare等热门服务上也是如此。但是当然,我们实际上只关心它如何影响您的WordPress网站。请在下面阅读更多有关导致此错误的原因以及如何快速解决该错误的一些解决方案。

什么是502错误网关错误?

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

有许多不同类型的500个状态的错误代码(500501502503504520等),其都具有略微不同的含义。这些表明请求已被接受,但是服务器阻止了请求的实现。在这种情况下,错误的502错误网关错误意味着一台服务器充当网关或代理时, 已从入站服务器收到无效的响应RFC 7231,第6.6.3节)。

502-bad-gateway-error-chrome

Chrome中的502错误的网关错误

502错误的网关错误变化

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

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

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

502-server-error

Chrome中的502服务器错误

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

502-web-server-received-an-invalid-response

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

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

twitter-is-over-capacity

Twitter容量过大(Img src:  Softpedia)

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

google-502-error

Google 502错误

502错误对SEO的影响

503错误(用于WordPress维护模式并告诉Google稍后再检查)不同,502错误(如果未立即解决)可能会对SEO产生负面影响。如果您的网站仅在10分钟之内就无法正常运行,并且多次被一致地爬网,则爬网程序只会从缓存中获取页面。否则Google甚至可能没有机会在备份之前重新抓取它。在这种情况下,您完全可以。

但是,如果该网站关闭了很长一段时间(例如6个多小时),则Google可能会看到502错误,这是需要解决的网站级问题。这可能会影响您的排名。如果您担心重复502错误,应该弄清楚为什么会这样。以下某些解决方案可以提供帮助。

如何修复502 Bad Gateway错误

502错误的网关错误通常是网络/服务器的问题,但是,它也可能是客户端的问题。因此,我们将深入探讨两者。找出这些常见原因和方法来修复502错误网关错误并重新启动并运行。

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

1.尝试重新加载页面

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

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

downforeveryoneorjustme

永远失望或正义

2.清除浏览器缓存

每当遇到此类问题时,最好清除浏览器缓存。

3. DNS问题

502网关错误也可能是由于DNS问题,例如域未解析为正确的IP。如果您刚刚将WordPress网站迁移到了新主机,那么重要的是要等待事件完全传播,在某些情况下,这可能需要长达24小时的时间。这取决于您的DNS记录的TTL值。

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

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

ipconfig / flushdns
command-prompt-flush-dns-e1504247136564

命令提示符–刷新DNS

如果工作正常,您应该会看到“已成功刷新DNS解析器缓存”。

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

dscacheutil -flushcache

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

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

4.向您的房东查询

我们通常会看到502错误的网关错误的主要原因是由于Web主机出现问题。有时  查询,脚本或请求将花费很长时间  ,因此服务器其取消或杀死。许多主机(尤其是共享主机)实现了所谓的“杀死脚本”。基本上,它的作用是在一段时间后终止请求,这样就不会使网站瘫痪或影响其他用户。如果您在Twitter上搜索“ 错误的网关 ”,则每天会看到成千上万条推文,向其托管公司发出警报。

502-bad-gateway-tweets

502错误的网关推文

您可能要考虑移至类似Kinsta之类的主机的一个原因是,我们的平台在隔离的软件容器  中运行,该  容器包含运行该站点所需的所有软件资源(Linux,NGINX,PHP,MySQL)。这意味着运行每个站点的软件  都是100%私有的,即使在您自己的站点之间也不会共享。这大大减少了出现502错误网关错误的机会。我们没有像某些共享主机那样运行激进的kill脚本。即使您的一个站点确实发生故障,也不会影响其他站点。

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

5.暂时禁用CDN或防火墙

您的内容交付网络(CDN)或防火墙也可能有问题  。如果您使用的是第三方CDN提供商,解决此问题的一种简便方法是暂时禁用CDN。例如,我们是免费CDN启动器插件的忠实拥护者。如果您使用的是,则只需停用插件,然后测试您的站点即可。如果您无法访问站点的仪表板,只需通过SFTP登录到站点,然后将插件的文件夹重命名为cdn-enabler_old。这将暂时禁用CDN连接。WP Rocket或您可能已连接到CDN的任何其他插件也是如此。

rename-plugin-temporarily

临时重命名插件文件夹

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

但是,在归咎于Cloudflare之前,务必要了解Cloudflare有两种不同类型的502错误网关错误变化,如下所示:

502 Cloudflare的错误网关(版本1)

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

502-bad-gateway-cloudflare-error

502错误的网关错误

502 Cloudflare的错误网关(版本2)

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

cloudflare-502-bad-gateway-host-1

主机上的Cloudflare 502错误网关

GoDaddy防火墙

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

godaddy-firewall-e1560784840822-1

HTTP 502 – GoDaddy防火墙

6.检查您的插件和主题

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

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

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

deactivate-all-plugins-1

停用所有插件

如果您无法访问管理员,则可以通过FTP进入服务器,然后将plugins文件夹重命名为plugins_old之类。然后再次检查您的站点。如果可行,则需要一个接一个地测试每个插件。将您的插件文件夹重命名为“ plugins”,然后逐个重命名每个插件文件夹,直到找到为止。

rename-plugin-folder-1

重命名插件文件夹

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

time-consuming-database-calls

耗时的数据库查询

如果事实证明是有效的查询或插件中的错误代码,则可能需要请  WordPress开发人员  来解决此问题。

7.检查日志

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

check-wordpress-error-logs-502-bad-gateway

检查错误日志以查找502错误的网关错误

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

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

如果您需要有关如何启用WordPress调试模式的更多帮助,请参阅完整的分步教程

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

wordpress-error-logs-folder-sftp

您还可以检查Apache和NGINX中的日志文件,它们通常位于以下位置:

  • Apache:  /var/log/apache2/error.log
  • NGINX:  /var/log/nginx/error.log

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

response-analysis-500-error-breakdown

响应分析500错误细目

8.重新启动PHP

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

restart-php-1

重新启动PHP

9. PHP超时问题

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

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

摘要

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