【问题标题】:Nginx + PHP-FPM 502 Bad GatewayNginx + PHP-FPM 502 错误网关
【发布时间】:2011-04-06 16:23:02
【问题描述】:

我从 Nginx 获得了一个502 Bad Gateway,该代码在我程序的其他地方运行良好的 PHP 代码行 ($this->provider = new OAuthProvider();) 上运行良好,并且之前运行良好。这是我在每个 502 的 Nginx 错误日志中收到的消息:

recv() 在从上游读取响应标头时失败(104:对等方重置连接)

在 PHP-FPM 日志中,每个 502 都有一个警告:

[警告] [pool www] 子 17427 在 142070.657176 秒后退出信号 11 SIGSEGV

在尝试了对 nginx.conf 的一些更改后,我被卡住了,非常感谢任何关于下一步做什么的指示。

我在 Ubuntu 10.04 上运行 Nginx 0.7.67 和 PHP 5.3.2。

【问题讨论】:

    标签: php nginx


    【解决方案1】:

    可能是 http://pecl.php.net/bugs/bug.php?id=17689 或错误 ID #18138

    【讨论】:

    • 这是错误 #17689,已在 oauth 中继的修订版 301127 中修复。下载了主干,现在效果很好。谢谢你的帮助,下次我会自己搜索bug数据库:)
    【解决方案2】:

    您的 PHP 进程因段错误(“信号 11 SIGSEGV”)而崩溃,这导致 Nginx 看到“对等方重置连接”(在这种情况下,PHP 是“对等方”,Nginx 告诉您“看,他挂了在我从他那里得到答案之前就来找我”)。

    查看how to report a bug someone will want to fix 上的 PHP 错误数据库页面,了解如何获取段错误的回溯以便报告它。

    【讨论】:

      【解决方案3】:

      我对 APC 也有同样的问题。所以我删除了它并安装了 eaccelerator 。目前没问题。

      【讨论】:

      • 使用 APC 的 php-fpm 也有这个问题。没有加载 APC 扩展,问题解决了……(或者更确切地说,解决了,因为我不能那样使用 APC……)
      • mh,我需要APC,有解决方案吗?
      【解决方案4】:

      我在使用 nginx/lighttpd + php-fcgi(使用 spawn-fcgi)时遇到了类似的问题,你是否为 php 使用任何操作码缓存? 我很久以前发现的是 xcache 在 php-fcgi 中引起了奇怪的行为,一些 php-fcgi 进程随机死亡,我找不到任何模式。如果您正在使用任何设置,我建议您查看 apc(或其他操作码缓存)设置。 现在我在 freebsd 上使用 nginx + php-fpm 并且没有问题。

      【讨论】:

      • 不,在这种情况下我不使用任何操作码缓存。不过,包括 APC 也在我的待办事项清单上。我遇到的问题是由于 oauth 实现中的一个错误,它已经在主干中修复了。
      【解决方案5】:

      ZendOptimizer + APC + php-fpm 5.2.14 即使在 phpinfo(); 上也能提供不断重现的 SIGSEGV。

      【讨论】:

        【解决方案6】:

        尝试关闭 suhosin。有时它会使 Apache 崩溃。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-17
          • 2011-03-12
          • 1970-01-01
          • 2019-06-07
          • 2012-02-05
          • 2012-05-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多