我在一行PHP代码上从Nginx得到了一个502 Bad Gateway
,它在我程序的其他地方($this->provider = new OAuthProvider();
)工作得很好,而且以前也工作得很好。这是我在Nginx错误日志中收到的每个502的消息:
recv()失败(104:从上游阅读响应标头时,由对等体重置连接
在PHP-FPM日志中,对于每个502:
[WARNING] [pool www] child 17427在启动后142070.657176秒后在信号11 SIGSEGV上退出
在尝试了对nginx.conf的一些更改后,我被卡住了,非常感谢任何关于下一步该做什么的指针。
我在Ubuntu 10.04上运行Nginx 0.7.67和PHP 5.3.2。
6条答案
按热度按时间llycmphe1#
可能是http://pecl.php.net/bugs/bug.php?id=17689或错误ID #18138
rxztt3cl2#
您的PHP进程因segfault(“signal 11 SIGSEGV”)而崩溃,这导致Nginx看到“connection reset by peer”(PHP在这种情况下是“peer”,Nginx告诉您“看,他在我得到答案之前挂断了我的电话”)。
查看how to report a bug someone will want to fix上的PHP Bug数据库页面,了解如何获取segfault的回溯,以便报告它。
edqdpe6u3#
我也遇到了同样的问题。所以我删除了它,安装了eAccelerator代替。到目前为止没有问题。
fivyi3re4#
我在nginx/lighttpd + php-fcgi(使用spawn-fcgi)上也遇到了类似的问题,你是否使用php的操作码缓存?很久以前我发现xcache在php-fcgi中引起了奇怪的行为,一些php-fcgi进程随机死亡,我无法找到任何模式。我建议你看看apc(或其他操作码缓存)设置,如果你正在使用的话。现在我在freebsd上使用nginx + php-fpm,没有任何问题。
jpfvwuh45#
ZendOptimizer + APC + php-fpm 5.2.14即使在phpinfo()上也能不断地重现SIGSEGV;.
ckx4rj1h6#
试着关掉suhosin。有时会导致Apache崩溃。