本文介绍了失败(104:对等连接重置)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在使用php5-fpm和nginx.

We are using the php5-fpm and nginx.



    # nginx -v
    nginx version: nginx/1.1.19
    

*

    # php -v
    PHP 5.3.27-1~dotdeb.0 with Suhosin-Patch (cli) (built: Jul 25 2013 19:30:39)
    Copyright (c) 1997-2013 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
        with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

*

收到以下错误,



    2013/08/21 20:00:20 [error] 12740#0: *46 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 172.17.7.12, server: fe.test.local, request: "GET /search?gender=female&ageFrom=20&ageTo=32&religionId=&casteId=&countryId=&heightFrom=&heightTo=&profileImageStatus=%28y+p%29&search=Search HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "fe.test.local", referrer: "http://fe.test.local/

PHP5-FPM配置,

PHP5-FPM configuration,



    # grep ^[^\;] /etc/php5/fpm/php-fpm.conf

    [global]
    pid = /var/run/php5-fpm.pid
    error_log = /var/log/php5-fpm.log
    log_level = notice
    process_control_timeout = 30
    include=/etc/php5/fpm/pool.d/*.conf



    # grep ^[^\;] /etc/php5/fpm/pool.d/www.conf
    [www]
    listen = /var/run/php5-fpm.sock
    listen.backlog = -1
    user = www-data
    group = www-data
    pm = dynamic
    pm.max_children = 10
    pm.start_servers = 4
    pm.min_spare_servers = 2
    pm.max_spare_servers = 6
    rlimit_files = 131072
    rlimit_core = unlimited
    chdir = /

Nginx fascgi配置部分

Nginx fascgi configuration part



    location ~ \.php$
      {
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_connect_timeout 120;
      fastcgi_send_timeout 600;
      fastcgi_read_timeout 600;
      fastcgi_buffers 8 256k;
      fastcgi_buffer_size 256k;
      fastcgi_busy_buffers_size 256k;
      fastcgi_temp_file_write_size 256k;
      client_max_body_size 20M;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      #fastcgi_pass 127.0.0.1:9000;
      fastcgi_pass unix:/var/run/php5-fpm.sock;
    }



    # strace -f -s 8000 -p 12761
    Process 12761 attached - interrupt to quit
    epoll_wait(9, {}, 1, 944)               = 0
    epoll_wait(9, {}, 1, 1000)              = 0
    epoll_wait(9, {}, 1, 1000)              = 0
    epoll_wait(9, 269f530, 1, 1000)         = -1 EINTR (Interrupted system call)
    --- SIGCHLD (Child exited) @ 0 (0) ---
    write(6, "C", 1)                        = 1
    rt_sigreturn(0x6)                       = -1 EINTR (Interrupted system call)
    epoll_wait(9, {{EPOLLIN, {u32=15427040, u64=15427040}}}, 1, 122) = 1
    read(4, "C", 1)                         = 1
    wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], WNOHANG|WSTOPPED, NULL) = 12826
    write(3, "[21-Aug-2013 19:33:37] WARNING: [pool www] child 12826 exited with code 127 after 275.844033 seconds from start\n", 112) = 112
    clone(Process 12832 attached (waiting for parent)
    Process 12832 resumed (parent 12761 ready)
    child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fd7a31cfa10) = 12832
    [pid 12832] set_robust_list(0x7fd7a31cfa20, 0x18) = 0
    [pid 12832] dup2(1, 2)                  = 2
    [pid 12832] close(3)                    = 0
    [pid 12832] dup2(7, 0)                  = 0
    [pid 12832] geteuid()                   = 0
    [pid 12832] setrlimit(RLIMIT_NOFILE, {rlim_cur=128*1024, rlim_max=128*1024}) = 0
    [pid 12832] setrlimit(RLIMIT_CORE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
    [pid 12832] chdir("/")                  = 0
    [pid 12832] setgid(33)                  = 0
    [pid 12832] open("/proc/sys/kernel/ngroups_max", O_RDONLY) = 3
    [pid 12832] read(3, "65536\n", 31)      = 6
    [pid 12832] close(3)                    = 0
    [pid 12832] open("/etc/group", O_RDONLY|O_CLOEXEC) = 3
    [pid 12832] lseek(3, 0, SEEK_CUR)       = 0
    [pid 12832] fstat(3, {st_mode=S_IFREG|0644, st_size=777, ...}) = 0
    [pid 12832] mmap(NULL, 777, PROT_READ, MAP_SHARED, 3, 0) = 0x7fd7a31c1000
    [pid 12832] lseek(3, 777, SEEK_SET)     = 777
    [pid 12832] fstat(3, {st_mode=S_IFREG|0644, st_size=777, ...}) = 0
    [pid 12832] munmap(0x7fd7a31c1000, 777) = 0
    [pid 12832] close(3)                    = 0
    [pid 12832] setgroups(1, [33])          = 0
    [pid 12832] setuid(33)                  = 0
    [pid 12832] prctl(PR_SET_DUMPABLE, 1)   = 0
    [pid 12832] close(4)                    = 0
    [pid 12832] close(6)                    = 0
    [pid 12832] rt_sigaction(SIGTERM, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] rt_sigaction(SIGUSR1, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] rt_sigaction(SIGUSR2, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] rt_sigaction(SIGQUIT, {0x7633f0, [], SA_RESTORER|SA_RESTART, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] close(7)                    = 0
    [pid 12832] accept(0,
    [pid 12761] write(3, "[21-Aug-2013 19:33:37] NOTICE: [pool www] child 12832 started\n", 62) = 62
    [pid 12761] wait4(-1, 0x7fff07258a7c, WNOHANG|WSTOPPED, NULL) = 0
    [pid 12761] read(4, 0x7fff07258b5f, 1)  = -1 EAGAIN (Resource temporarily unavailable)
    [pid 12761] epoll_wait(9, {}, 1, 108)   = 0
    [pid 12761] epoll_wait(9, {}, 1, 1000)  = 0
    [pid 12761] epoll_wait(9, 269f530, 1, 1000) = -1 EINTR (Interrupted system call)
    [pid 12761] --- SIGCHLD (Child exited) @ 0 (0) ---
    [pid 12761] write(6, "C", 1)            = 1
    [pid 12761] rt_sigreturn(0x6)           = -1 EINTR (Interrupted system call)
    [pid 12761] epoll_wait(9, {{EPOLLIN, {u32=15427040, u64=15427040}}}, 1, 769) = 1
    [pid 12761] read(4, "C", 1)             = 1
    [pid 12761] wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], WNOHANG|WSTOPPED, NULL) = 12830
    [pid 12761] write(3, "[21-Aug-2013 19:33:39] WARNING: [pool www] child 12830 exited with code 127 after 10.053632 seconds from start\n", 111) = 111
    [pid 12761] clone(Process 12833 attached
    child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fd7a31cfa10) = 12833
    [pid 12761] write(3, "[21-Aug-2013 19:33:39] NOTICE: [pool www] child 12833 started\n", 62) = 62
    [pid 12761] wait4(-1, 0x7fff07258a7c, WNOHANG|WSTOPPED, NULL) = 0
    [pid 12761] read(4, 0x7fff07258b5f, 1)  = -1 EAGAIN (Resource temporarily unavailable)
    [pid 12761] epoll_wait(9,
    [pid 12833] set_robust_list(0x7fd7a31cfa20, 0x18) = 0
    [pid 12833] dup2(1, 2)                  = 2
    [pid 12833] close(3)                    = 0
    [pid 12833] dup2(7, 0)                  = 0
    [pid 12833] geteuid()                   = 0
    [pid 12833] setrlimit(RLIMIT_NOFILE, {rlim_cur=128*1024, rlim_max=128*1024}) = 0
    [pid 12833] setrlimit(RLIMIT_CORE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
    [pid 12833] chdir("/")                  = 0
    [pid 12833] setgid(33)                  = 0
    [pid 12833] open("/proc/sys/kernel/ngroups_max", O_RDONLY) = 3
    [pid 12833] read(3, "65536\n", 31)      = 6
    [pid 12833] close(3)                    = 0
    [pid 12833] open("/etc/group", O_RDONLY|O_CLOEXEC) = 3
    [pid 12833] lseek(3, 0, SEEK_CUR)       = 0
    [pid 12833] fstat(3, {st_mode=S_IFREG|0644, st_size=777, ...}) = 0
    [pid 12833] mmap(NULL, 777, PROT_READ, MAP_SHARED, 3, 0) = 0x7fd7a31c1000
    [pid 12833] lseek(3, 777, SEEK_SET)     = 777
    [pid 12833] fstat(3, {st_mode=S_IFREG|0644, st_size=777, ...}) = 0
    [pid 12833] munmap(0x7fd7a31c1000, 777) = 0
    [pid 12833] close(3)                    = 0
    [pid 12833] setgroups(1, [33])          = 0
    [pid 12833] setuid(33)                  = 0
    [pid 12833] prctl(PR_SET_DUMPABLE, 1)   = 0
    [pid 12833] close(4)                    = 0
    [pid 12833] close(6)                    = 0
    [pid 12833] rt_sigaction(SIGTERM, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] rt_sigaction(SIGUSR1, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] rt_sigaction(SIGUSR2, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] rt_sigaction(SIGQUIT, {0x7633f0, [], SA_RESTORER|SA_RESTART, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] close(7)                    = 0
    [pid 12833] accept(0,
    [pid 12761]  {}, 1, 766) = 0
    [pid 12761] epoll_wait(9, {}, 1, 1000)  = 0`enter code here`
    [pid 12761] epoll_wait(9, {}, 1, 1000)  = 0

推荐答案

上述nginx错误表明该问题与fastcgi(php-fpm)有关.

The above nginx error indicate that issue is related to the fastcgi(php-fpm).

在/etc/php5/fpm/pool.d/www.conf上启用"catch_workers_output"之后在php5-fpm.log上找到了相关的错误.现在了解该问题与AMQP模块有关.

After enabling the "catch_workers_output" on /etc/php5/fpm/pool.d/www.confGot the relevant error on php5-fpm.log. Now understand that issue is related to AMQP module.

[2013年8月21日23:32:57]警告:[池www]子16091说到stderr中:"php-fpm:池www:符号查找错误:/usr/lib/php5/20090626/amqp.因此:未定义的符号:amqp_open_socket"

[21-Aug-2013 23:32:57] WARNING: [pool www] child 16091 said into stderr: "php-fpm: pool www: symbol lookup error: /usr/lib/php5/20090626/amqp.so: undefined symbol: amqp_open_socket"

重新编译并安装amqp模块后,该问题已得到解决

Issue has been fixed afterrecompiled and install amqp module

这篇关于失败(104:对等连接重置)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-12 23:57