【51CTO.com快译】你有没有在WordPress网站上看到过非常烦人又沮丧的502 Bad Gateway错误?是的,我们都遇到过这个问题。知道502 Bad Gateway错误是啥意思吗?知道如何解决这个问题吗?我们在本文将详细介绍WordPress中的502 Bad Gateway错误,并告诉你如何排查WordPress中的502 Bad Gateway错误。
502 Bad Gateway错误的含义是什么?
502 Bad Gateway错误是个HTTP状态代码,意味着互联网上的一台服务器收到了来自另一台服务器的无效响应。用技术性更强的话来说,502 Bad Gateway意味着代理(网关)服务器无法获得来自上游服务器的有效响应或任何响应。
W3.org的官方文档指出,这与以5(5xxx)开头的HTTP状态代码与几台服务器之间通信不畅时发生的错误有关。
如果你在网站上看到502 Bad Gateway错误,表明源服务器向另一台充当网关或代理的服务器发送了无效响应。要经过一番棘手的调查才能找出问题具体出在哪里。不过,你可以遵循几个基本的排查步骤来解决这个问题。
502 Bad Gateway错误的几种形式
由于各种互联网浏览器和各种Web服务器及操作系统,502 Bad Gateway错误有几种不同的形式。下面是502 Bad Gateway错误的几种最常见的形式。
- ? “Error 502”
- ?“HTTP Error 502 – Bad Gateway”
- ?“502 Proxy Error”
- ?“HTTP 502”
- ?“502 Service Temporarily Overloaded”(“502服务暂时过载”)
- ?“502 Server Error: The server encountered a temporary error and could not complete your request”(“502服务器错误:服务器暂时遇到了错误,无法完成你的请求。”)
- ?“502. That’s an error. The server encountered a temporary error and could not complete your request. Please try again in 30 seconds. That’s all we know.”(“502。这是错误。服务器暂时遇到了错误,无法完成你的请求。请在30秒后重试。这是我们所知道的。”)
- ?屏幕一片空白
如何解决502 Bad Gateway错误(3种可能的办法)
502 Bad Gateway错误通常是网络或服务器出了问题,但也可能是客户端问题。于是我们会排查服务器端的错误,还会排查客户端的错误。下面是检查和解决问题的几个步骤。
1. 检查服务器
如果你看到图中所示的错误,很可能问题出在Web服务器。
不妨检查一下Web服务器配置,本例中服务器运行Nginx。WordPress在PHP和MySQL上运行。所以在Nginx中,我们需要检查PHP文件是如何处理的。在Nginx服务器部分找到“location ~ \.php$”。
- ssh@your_ip -p7022
502 Bad Gateway错误
从图中所示的Nginx配置来看,PHP文件由在端口9000运行的fastcgi来处理。
不妨检查端口上运行的是什么。
- netstat -pltn | grep 9000
如果你在执行该命令后没看到任何结果,表明进程已终结。这是你看到502 Bad Gateway错误的原因。
在***版CentOS和Ubuntu中,可以调用此命令来查看应该从哪里运行进程:
- systemctl list-unit-files | grep fpm
502 Bad Gateway错误
执行该命令来运行服务:
- systemctl start php7.0-fpm
现在,进入到Web浏览器,检查你的网站。
如果你使用CloudFlare,看到如下图所示的502 Bad Gateway错误,你的Web服务器极有可能是宕机了。可以尝试重启Apache或Nginx,这取决于你使用哪种Web服务器。
cloudflare中的502 Bad Gateway错误
2. 清除缓存
如果已采用***个办法,但还是看到502 Bad Gateway错误,那么你的Web浏览器仍依赖缓存。我们得告诉Web浏览器从网站加载***版本。为此,我们可以按下键盘上的Ctrl + F5(Windows/Linux)、工具栏中的Shift + Reload按钮(Safari浏览器),或者CMD + Shift + R(针对Mac用户的Chrome和Firefox)。
3. 禁用CDN
如果你在使用CloudFlare,可以尝试暂时禁用CDN。
502 Bad Gateway错误:禁用CDN
4. 检查脚本
如前所述,502 Bad Gateway错误是由于Web服务器出了问题。比如说,有时候,php进程因使用高端内存(high memory)而被服务器终结。这个终结过程会在一段时间后终止请求,这也会导致网站宕机。但是网站通常会自动可以访问,因为这时PHP进程重新生成。为了***解决这个问题,要检查哪个php脚本在使用高端内存。
5. 检查插件和主题
排查哪个插件导致错误很简单。即使我们无法访问WordPress后端,也可以通过重命名插件目录,一次性禁用所有插件。为此,使用SSH连接到你的服务器。请注意:你也可以使用FTP客户软件(比如FileZilla)来执行此操作。
解决502 Bad Gateway错误
你可以逐个启用插件,按照以下步骤操作:
进入到wp-content目录,我们可以看到没有插件目录,我们已对其重命名。
不妨创建一个插件目录,并将一个插件移过去。这会自动启用该插件。
解决wordpress中的502 Bad Gateway错误
有时,排查WordPress错误比我们想象的要容易,但有时也可能很难解决。
当然,如果你的WordPress VPS由服务提供商托管,无需为服务器操心,提供商的技术支持团队会马上帮你调查和解决这个502 Bad Gateway问题。他们随时待命,能够解答任何问题或要求。
原文标题:How to Fix the 502 Bad Gateway Error in WordPress
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】