[v_tips]502 Bad Gateway错误的含义是什么?[/v_tips]
502 Bad Gateway错误是个HTTP状态代码,意味着互联网上的一台服务器收到了来自另一台服务器的无效响应。用技术性更强的话来说,502 Bad Gateway意味着代理(网关)服务器无法获得来自上游服务器的有效响应或任何响应。
W3.org的官方文档指出,这与以5(5xxx)开头的HTTP状态代码与几台服务器之间通信不畅时发生的错误有关。
如果你在网站上看到502 Bad Gateway错误,表明源服务器向另一台充当网关或代理的服务器发送了无效响应。要经过一番棘手的调查才能找出问题具体出在哪里。不过,你可以遵循几个基本的排查步骤来解决这个问题。
[v_notice]如何解决502 Bad Gateway错误(3种可能的办法)[/v_notice]
1:检查服务器
如果你看到图中所示的错误,很可能问题出在Web服务器。
不妨检查一下Web服务器配置,本例中服务器运行Nginx。WordPress在PHP和MySQL上运行。所以在Nginx中,我们需要检查PHP文件是如何处理的。在Nginx服务器部分找到“location ~ \.php$”。
ssh@your_ip -p7022
从图中所示的Nginx配置来看,PHP文件由在端口9000运行的fastcgi来处理。
不妨检查端口上运行的是什么。
netstat -pltn | grep 9000
如果你在执行该命令后没看到任何结果,表明进程已终结。这是你看到502 Bad Gateway错误的原因。
在最新版CentOS和Ubuntu中,可以调用此命令来查看应该从哪里运行进程:
systemctl list-unit-files | grep fpm
systemctl start php7.0-fpm
现在,进入到Web浏览器,检查你的网站。
如果你使用CloudFlare,看到如下图所示的502 Bad Gateway错误,你的Web服务器极有可能是宕机了。可以尝试重启Apache或Nginx,这取决于你使用哪种Web服务器。
2. 清除缓存
如果已采用第一个办法,但还是看到502 Bad Gateway错误,那么你的Web浏览器仍依赖缓存。我们得告诉Web浏览器从网站加载最新版本。为此,我们可以按下键盘上的Ctrl + F5(Windows/Linux)、工具栏中的Shift + Reload按钮(Safari浏览器),或者CMD + Shift + R(针对Mac用户的Chrome和Firefox)。
3. 禁用CDN
如果你在使用CloudFlare,可以尝试暂时禁用CDN。
4. 检查脚本
如前所述,502 Bad Gateway错误是由于Web服务器出了问题。比如说,有时候,php进程因使用高端内存(high memory)而被服务器终结。这个终结过程会在一段时间后终止请求,这也会导致网站宕机。但是网站通常会自动可以访问,因为这时PHP进程重新生成。为了永久解决这个问题,要检查哪个php脚本在使用高端内存。
5. 检查插件和主题
排查哪个插件导致错误很简单。即使我们无法访问WordPress后端,也可以通过重命名插件目录,一次性禁用所有插件。为此,使用SSH连接到你的服务器。请注意:你也可以使用FTP客户软件(比如FileZilla)来执行此操作。
进入到wp-content目录,我们可以看到没有插件目录,我们已对其重命名。
不妨创建一个插件目录,并将一个插件移过去。这会自动启用该插件。
有时,排查WordPress错误比我们想象的要容易,但有时也可能很难解决。
当然,如果你的WordPress VPS由服务提供商托管,无需为服务器操心,提供商的技术支持团队会马上帮你调查和解决这个502 Bad Gateway问题。他们随时待命,能够解答任何问题或要求。
欢迎加入我们的QQ群,进行讨论学习 学派吧