Drupal + Nginx + Php-cgi:502错误的网关错误

我们使用php-fastcgi在Nginx上运行Drupal 5.x。 事情工作很好一段时间。 突然之间,我们(用户)正在运行502错误网关错误。 重新启动PHP的CGI,Nginx的..重新启动机器等没有帮助。

有没有其他人遇到这种types的问题? 什么是可能的嫌疑人?

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

将以下几行添加到http部分中:

fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; 

由于某些原因,PHP通常会导致502错误。 你应该做的第一件事是检查所有的日志文件。 这包括/ var / log /和nginx日志中的系统资料。

如果您还没有做出任何近期的更改,并且问题刚刚开始发生没有明显的原因,PHP可能会用完内存。 我知道什么时候它发生了一个Apache模块,它会给出一个空白的屏幕 – 如果在nginx和FastCGI接口下发生502错误,不会感到惊讶。 把ini_set('memory_limit','256M')放到你的index.php文件中,看看是否能解决这个问题。

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

祝你好运!

我也得到了这个错误,我最终禁用所有模块(非核心),并逐一启用,看看是什么导致了错误。

这是一个简单的方法来禁用所有的非核心模块 。

如果问题刚刚开始..阅读上面..如果服务器是新的只是设置,试试这个命令,看看它是否在监听它的端口

 netstat -lpn | grep ":9000" 

如果当然你可以设置fast-cgi在不同的端口上工作,所以只需要把端口9000替换成你正在查找的端口就可以了。如果没有任何东西继续显示出来,可能没有任何东西在监听端口你需要先解决这个问题。

如果你有firePHP禁用它。 大标题导致问题,而Nginx与PHP通信

通常当我遇到这个问题时,PHP在某处是个致命的错误。 看看你的PHP-CGI日志,看看它是否在那里。 在nginx日志中应该有这样的东西: 104: Connection reset by peer 。 取决于你的设置(对不起,链接死了)可能会有所帮助,但如果你使用php-fpm则不会。

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

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