【问题标题】:nginx recv() failed (104: Connection reset by peer) while reading response header from upstream从上游读取响应标头时,nginx recv() 失败(104:对等方重置连接)
【发布时间】:2015-05-07 17:12:24
【问题描述】:

我最近将我的 magento 从 1.5 升级到 1.9,当我将某个产品添加到购物篮时,我开始收到此错误:502 Bad Gateway

var/log/ 文件夹中没有日志条目:

所以,我查看了我的 nginx 错误,并在 nginx-errors.log 中找到了以下条目:

2015/04/09 10:58:03 [error] 15208#0: *3 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 46.xxx.xxx.xxx, server: dev.my-domain.co.uk, request: "POST /checkout/cart/add/uenc/aHR0cDovL2Rldi5zYWx2ZW8uY28udWsvdGludGktYmF0aC1wYWludGluZy1zb2FwLTcwbWwuaHRtbD9fX19TSUQ9VQ,,/product/15066/form_key/eYLc3lQ35BSrk6Pa/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fcgi-www-data.sock:", host: "dev.my-domain.co.uk", referrer: "http://dev.my-domain.co.uk/tinti-bath-painting-soap-70ml.html"
2015/04/09 11:04:42 [error] 15208#0: *13 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 46.xxx.xxx.xxx, server: dev.my-domain.co.uk, request: "POST /checkout/cart/add/uenc/aHR0cDovL2Rldi5zYWx2ZW8uY28udWsvdGludGktYmF0aC1wYWludGluZy1zb2FwLTcwbWwuaHRtbD9fX19TSUQ9VQ,,/product/15066/form_key/eYLc3lQ35BSrk6Pa/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fcgi-www-data.sock:", host: "dev.my-domain.co.uk", referrer: "http://dev.my-domain.co.uk/tinti-bath-painting-soap-70ml.html"
2015/04/09 11:05:03 [error] 15208#0: *16 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 46.xxx.xxx.xxx, server: dev.my-domain.co.uk, request: "POST /checkout/cart/add/uenc/aHR0cDovL2Rldi5zYWx2ZW8uY28udWsvdGludGktYmF0aC1wYWludGluZy1zb2FwLTcwbWwuaHRtbD9fX19TSUQ9VQ,,/product/15066/form_key/eYLc3lQ35BSrk6Pa/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fcgi-www-data.sock:", host: "dev.my-domain.co.uk", referrer: "http://dev.my-domain.co.uk/tinti-bath-painting-soap-70ml.html"
2015/04/09 11:12:07 [error] 15273#0: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 46.xxx.xxx.xxx, server: dev.my-domain.co.uk, request: "POST /checkout/cart/add/uenc/aHR0cDovL2Rldi5zYWx2ZW8uY28udWsvdGludGktYmF0aC1wYWludGluZy1zb2FwLTcwbWwuaHRtbD9fX19TSUQ9VQ,,/product/15066/form_key/eYLc3lQ35BSrk6Pa/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fcgi-www-data.sock:", host: "dev.my-domain.co.uk", referrer: "http://dev.my-domain.co.uk/tinti-bath-painting-soap-70ml.html"

我已经在自定义 LEMP 堆栈上安装了 magento,以下是配置:

仅当我将特定产品添加到升级后的 magento 中的购物篮时才会出现此错误,并且每次发生错误时,我都会看到一个 core.XXXXX 文件(大约 350mb)在 public_html 文件夹中。

知道为什么我的 php-fpm 会这样崩溃吗?如何找到原因并解决?

这是我的 Linux (CentOS) 服务器上的最后一个条目,当我运行 dmesg 命令时:

php-fpm[14862]: segfault at 7fff38236ff8 ip 00000000005c02ba sp 00007fff38237000 error 6 in php-fpm[400000+325000]
php-fpm[15022]: segfault at 7fff38351ff0 ip 00000000005bf6e5 sp 00007fff38351fb0 error 6 in php-fpm[400000+325000]
php-fpm[15021]: segfault at 7fff38351ff0 ip 00000000005bf6e5 sp 00007fff38351fb0 error 6 in php-fpm[400000+325000]
php-fpm[15156]: segfault at 7fff38351ff0 ip 00000000005bf6e5 sp 00007fff38351fb0 error 6 in php-fpm[400000+325000]
php-fpm[15024]: segfault at 7fff38351ff0 ip 00000000005bf6e5 sp 00007fff38351fb0 error 6 in php-fpm[400000+325000]
php-fpm[15223]: segfault at 7fff8d1d5fd8 ip 00000000005c02ba sp 00007fff8d1d5fe0 error 6 in php-fpm[400000+325000]
php-fpm[15222]: segfault at 7fff8d1d5fd8 ip 00000000005c02ba sp 00007fff8d1d5fe0 error 6 in php-fpm[400000+325000]
php-fpm[15225]: segfault at 7fff8d1d5fd8 ip 00000000005c02ba sp 00007fff8d1d5fe0 error 6 in php-fpm[400000+325000]
php-fpm[15227]: segfault at 7fff8d1d5fd8 ip 00000000005c02ba sp 00007fff8d1d5fe0 error 6 in php-fpm[400000+325000]
php-fpm[15362]: segfault at 7fff3118afd0 ip 00000000005c0ace sp 00007fff3118afa0 error 6 in php-fpm[400000+325000]

我用 gdb 分析了核心转储,这是我在前两帧看到的:http://pastebin.com/raw.php?i=aPvB1sWv(对我来说没有多大意义)...

【问题讨论】:

  • 我在别处读到升级到 php 5.6.x 可能会有所帮助,所以我这样做了 - 但错误仍在发生。

标签: magento nginx crash php


【解决方案1】:

由于 PHP 5.5.23 补丁(也是 5.6.7),我有类似的错误。它在 SOAP 调用上失败。我发现的唯一解决方法是将 php 降级到 5.5.22。您可以通过放置断点来检测导致应用崩溃的函数。

【讨论】:

  • 我用 gdb 分析了核心转储,这是我在前两帧中看到的:pastebin.com/raw.php?i=aPvB1sWv(对我来说没有多大意义)...
  • 我正在使用REMI repo for php/php-fpm。我该如何降级到特定版本的 php 5.5.22
【解决方案2】:

对于从 5.6.7 降级到 5.6.6:

rpm -ivhU --nodeps --force http://rpms.famillecollet.com/enterprise/6.5/php56/x86_64/php-common-5.6.6-1.el6.remi.x86_64.rpm

rpm -ivhU --nodeps --force http://rpms.famillecollet.com/enterprise/6.5/php56/x86_64/php-cli-5.6.6-1.el6.remi.x86_64.rpm

rpm -ivhU --nodeps --force http://rpms.famillecollet.com/enterprise/6.5/php56/x86_64/php-fpm-5.6.6-1.el6.remi.x86_64.rpm

RPM:http://rpms.famillecollet.com/enterprise/6.5/

【讨论】:

  • 同样的问题,崩溃并生成核心转储。
【解决方案3】:

你可以检查如果你不尝试加载模块两次。 xdebug 发生在我身上,得到了两个文件 zend_extension-xdebug.so

这是因为我使用 vagrant 来设置我的机器,而之前的默认配置文件默认禁用了模块:

20-xdebug.ini:

#zend_module=zdebug.so

所以在我的配置文件中,我符号链接了另一个 99-xdebug.ini 不幸的是,这最近发生了变化,并且默认情况下未启用 xdebug。

还是不知道怎么看 - 看了这篇文章后幸运找到了它:https://bugs.php.net/bug.php?id=65584

【讨论】:

    猜你喜欢
    • 2018-02-21
    • 1970-01-01
    • 2020-06-27
    • 2021-05-09
    • 2019-05-04
    • 1970-01-01
    • 2020-01-03
    • 2014-11-01
    • 2016-01-04
    相关资源
    最近更新 更多