HTTP 504 Gateway Timeout和HTTP 502 Bad Gateway Error是WordPress网站访问者和所有者最常见的服务器错误。在我的前一篇文章中,我们已经讨论了504网关超时错误的原因和可能的解决方案。在本文中,我们将了解502 Bad Gateway错误是什么,讨论502 Bad Gateway错误的原因,并探讨解决这类错误的一些技巧。502 Bad Gateway是什么意思?在定义什么是502 Bad Gateway错误之前,让我们深入研究服务器基础结构并找出一些术语的含义,如web服务器、代理服务器或网关和上游服务器。让我们首先讨论托管现代web应用程序是如何工作的。为此,我们需要三个角色:
FastCGI是一个用于将交互式程序与web服务器连接的二进制协议。CGI(通用网关接口)是一种网络技术和协议,它描述了一种网络服务器与外部应用程序(如PHP)通信的方式。CGI是web服务器和动态web内容之间的接口,这些内容是由用不同编程语言编写的web应用程序生成的,如PHP、Python等。FastCGI是CGI的改进版本。运行PHP应用程序的一种现代方法是使用PHP- fpm。在PHP- fpm之前,PHP通常直接在Apache中运行,不需要网关。Apache的PHP模块直接加载PHP,允许PHP与任何处理过的文件一起运行。web服务器通常承载多个站点,提供静态文件,代理请求到其他进程,执行负载平衡和HTTP缓存。最流行的web服务器是Apache和Nginx。Apache曾经是最广泛的web服务器,直到Nginx变得更流行。在10Web我们支持LEMP栈,它类似于LAMP (Linux, Apache, MySQL和PHP),除了Apache被Nginx取代。当你在浏览器中打开由10Web托管的WordPress网站时会发生什么?在本例中,web服务器Nginx接受请求并将其转发给PHP- fpm,后者反过来解释PHP代码。响应被传回,最终到达客户端。在这种情况下,Ngnix就像一个代理服务器,在大多数情况下被称为边缘服务器。代理服务器后面的服务器称为上游服务器或源服务器。在这种情况下,PHP-FPM充当上游服务器。现在我们已经完全理解了上述术语,让我们最终理解502 Bad Gateway错误是什么。什么是502坏网关错误?当web服务器作为代理服务器并从上游服务器收到无效响应时,我们面临一个502 Bad Gateway错误。一个502糟糕的网关Ror表示代理服务器(即边缘服务器)无法从上游服务器(即原始服务器)获得有效响应。当您看到一个502 Bad Gateway错误时,这意味着上游服务器有问题。这可能是因为各种各样的原因,我们将在本文中讨论这些原因。根据操作系统、浏览器和设备的不同,502 Bad Gateway错误可以以不同的方式出现。 一些网站自定义502 Bad Gateway页面。 平台也可以更改错误的消息。因此,对于同一个错误,你可能会遇到不同的消息,但它们都有相同的含义: 502 Bad Gateway HTTP error 502 Bad Gateway error 502 HTTP 502 HTTP error 502 - Bad Gateway 502 Proxy error 502 Server error:服务器遇到临时错误,无法完成您的请求。502网关错误NGINX 502。这是一个错误。服务器遇到临时错误,无法完成您的请求。请30秒后再试。这就是我们所知道的。502 Bad Gateway错误背后的原因是什么?5xx状态码表示服务器有问题,502也不例外。由于某种原因,代理服务器无法从上游服务器获得响应或有效响应。在你的带有Nginx/PHP-FPM堆栈的WordPress网站中,当PHP-FPM没有运行或Nginx由于某种原因无法与PHP-FPM通信时,可能会发生502错误。这种情况应该由托管提供商检查。另一个原因可能是PHP-FPM超时问题,我们将在后面讨论这个问题。Nginx和PHP-FPM之间的任何误解都可能导致502 Bad Gateway错误。虽然这些错误与服务器端问题有关,但在客户端有一些排除故障的提示。
让我们回顾一下客户机和服务器端的故障排除。这里有一些从客户端修复502 Bad Gateway错误的非常简单的方法。您应该做的第一件事是重新加载页面并等待一分钟。如果502 Bad Gateway错误消失,则意味着上游服务器或服务器之间的网络存在临时问题。如果错误仍然存在,检查站点是否对所有人都关闭了。你可以用它现在坏了吗?对于这个。如果该网站对除您之外的所有人都开放,请在其他浏览器上或以私有模式打开该网站。另一个简单的提示是清除浏览器缓存。如果在清理缓存后错误消失,这意味着一个临时的问题已经解决,但因为缓存,你一直看到502坏网关错误模板,而不是你的网站。如果错误仍然存在,请尝试下一个技巧。 Flush DNS cache
由于DNS问题,可能会出现502 Bad Gateway错误。Linux、Windows和macOS等操作系统以DNS缓存的形式保存名称解析信息。在许多情况下,清除DNS缓存可以解决502 Bad Gateway错误。下面是可以用于在Windows、MacOs和Linux上刷新DNS缓存的命令。在macOS上,你应该打开终端并输入: sudo killall -HUP mDNSResponder
处理完这个命令后没有消息,但是你可以通过运行如下命令添加你自己的消息: sudo killall -HUP mDNSResponder;在Linux中情况有所不同,因为不同的Linux发行版使用不同的dns服务。其中一些是NSCD(名称服务缓存守护进程)、dnsmasq和BIND (Berkeley Internet Name Domain)。NSCD DNS缓存:
不适当的防火墙配置可以导致502 Bad Gateway errors。防火墙是一种网络安全系统,它根据预定的安全规则对出入的网络流量进行监控和控制。它通常在可信网络和不可信网络之间建立一个屏障。在某些情况下,一些尴尬的防火墙设置可能会认为安全有效的内容是恶意的,因此,切断流量,进而导致502 Bad Gateway错误。检查您的防火墙配置,以发现任何不适当的配置。WordPress插件和主题中的非最佳代码也会导致502个错误。所以,检查你的插件和主题。如果你可以访问你的WordPress管理员,禁用你所有的插件,如果错误消失了,这意味着至少有一个有罪的插件。然后逐一激活它们,找出那些有罪的。如果你的WordPress管理区域因为这个错误无法访问,但你可以访问你的WordPress文件,只要在wp-content中重命名插件目录。它将停用所有插件。然后开始一个一个地激活它们。如果不是插件的问题,那就是去激活所有的插件或者重命名插件目录不会改变任何东西,试着将你的主题临时更改为WordPress的默认主题。一旦你发现了不好的插件或主题,联系相关的支持团队并描述问题。别忘了让你的插件、主题和WordPress核心保持最新。这将帮助您避免许多问题,包括502个错误。如果您的服务器上的PHP-FPM服务是不活动的或没有运行,您将得到一个502错误。如果您可以访问您的主机,您可以通过运行以下命令之一来检查这一点。对于SysVinit: sudo service php7.4-fpm status
对于SystemD: sudo systemctl status php7.4-fpm
如果服务是active且正在运行,命令的输出如下: 如果状态不是Active: Active(正在运行),尝试使用以下命令之一重新启动PHP-FPM服务来解决错误。For SysVinit: sudo service php7.4-fpm restart
For SystemD: sudo systemctl restart php7.4-fpm Timeout issues
502错误可能是由PHP-FPM超时引起的。如果应用程序的响应时间过长,用户将遇到超时错误。如果PHP-FPM超时时间小于Nginx超时时间,Nginx将返回一个502 Bad Gateway错误。为了避免这种情况,如果可以访问服务器,可以增加PHP-FPM超时时间。
PHP执行时间错误也会导致502 Bad Gateway错误。为了避免这种情况,可以增加PHP配置,例如max_exexution_time和max_input_time。如果您有服务器访问权限,只需更改php.ini文件中的这些指令。如果没有,请您的主机托管提供商为您做。404错误和502错误的区别是什么?
当网页服务器无法找到内容时,会出现404 Not Found错误。当代理服务器无法得到任何响应或从上游服务器得到无效响应时,就会发生502 Bad Gateway错误。当请求的内容被删除或不存在时,您会遇到404。当上游服务器或原始服务器出现问题或代理和上游服务器之间的通信出现问题时,您会看到502个错误。网站上的502、503和504错误消息有什么区别?
当代理服务器没有从上游或源服务器获得有效响应时,您得到了一个502 Bad Gateway错误。504当代理服务器无法及时收到上游服务器的响应时,发生网关超时错误。503 Service Unavailable错误表示服务器还没有准备好处理请求,这种情况发生在服务器停机维护或过载时。“502个错误对网站排名有影响吗?”