Drupal + Nginx + Php-cgi:502 Bad Gateway错误

时间:2009-10-03 19:15:04

标签: php drupal nginx fastcgi

我们正在使用php-fastcgi在Nginx上运行Drupal 5.x. 事情一段时间都很好。突然之间,我们(用户)遇到了502 Bad Gateway错误。 重启PHP-cgi,nginx ..重启机器等没有帮助。

是否还有其他人遇到此类问题?有什么可能的嫌疑人?

8 个答案:

答案 0 :(得分:10)

今天我在一个CI项目上得到了“502 Bad Gateway”,在深入研究这个问题之后我发现它是nginx fastcgi缓冲区的问题,以下是如何修复它: 打开/etc/nginx/nginx.conf

将以下行添加到http部分:

fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

答案 1 :(得分:3)

当PHP由于某种原因而吓坏时,通常会导致502错误。您应该做的第一件事是检查所有日志文件。这包括/ var / log /和nginx日志中的系统内容。

如果您没有进行任何最近的更改,并且问题刚刚开始发生,没有明显的原因,PHP可能会耗尽内存。我知道当它作为一个Apache模块发生时它会给出一个空白屏幕 - 如果在nginx和FastCGI接口下发生502错误,不会感到惊讶。通过将 ini_set('memory_limit','256M')放入index.php并查看是否能解决问题,这很容易解决。

另外,你可以加载不涉及Drupal的独立PHP文件吗?把put放在<?php phpinfo(); ?> 到一个名为info.php的文件中,尝试点击它,看看会发生什么。

祝你好运!

答案 2 :(得分:2)

我也遇到了这个错误,我最终禁用了所有模块(非核心)并逐个启用它们以查看导致错误的原因。

这是disable all non-core modules的简便方法。

答案 3 :(得分:0)

通常当我遇到这个问题时,它在某些地方是PHP的致命错误。看看你的PHP-cgi日志,看看它是否在那里。 nginx日志中应该有这样的内容:104: Connection reset by peer。根据您的设置,此(抱歉,链接已死)可能有所帮助,但如果您使用的是php-fpm则不会。

答案 4 :(得分:0)

如果问题刚刚开始..请阅读以上内容..如果服务器是刚安装的新服务器,请尝试此命令以查看它是否正在监听它的端口

netstat -lpn | grep ":9000"

如果当然你可以设置fast-cgi来处理不同的端口,那么只需将该语句中的端口9000替换为你正在寻找的端口..如果没有任何东西继续显示,可能没有什么是在听在该端口上,您需要先解决该问题。

答案 5 :(得分:0)

如果你有firePHP禁用它。 使用php进行nginx通信时,大标题会导致问题

答案 6 :(得分:0)

增加内存限制,它将被修复。 ini_set('memory_limit','256M');

答案 7 :(得分:0)

这是因为您可能升级到PHP 5.5,因此您现在使用的操作码缓存可能已启用两次。那是检查php.ini和opcache.ini。