标题:[遇到问题]解决 recv() failed (104: Connection reset by peer) while reading response header from upstream 出处:向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 时间:Tue, 16 Feb 2016 16:31:51 +0000 作者:jackxiang 地址:http://jackxiang.com/post/8509/ 内容: 问题如下: 2016/02/16 16:29:05 [error] 11925#0: *50 recv() failed (104: Connection reset by peer) while reading response header from upstream 解决办法: Nginx出现502 Bad Gateway 错误, 查了Nginx的错误日志为: 2014/08/02 16:14:31 [error] 17029#0: *17941 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 210.61.12.2, server: blog.lixiphp.com, request: “POST /api/1.0 HTTP/1.1″, upstream: “fastcgi://127.0.0.1:9000″, host: “blog.lixiphp.com”2014/08/02 16:24:52 [error] 29615#0: *3 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 58.220.197.35, server: blog.lixiphp.com, request: “GET /404 HTTP/1.1″, upstream: “fastcgi://127.0.0.1:9000″, host: “blog.lixiphp.com” 不要使用php-fpm的request_terminate_timeout,最好设成request_terminate_timeout=0; vi /etc/php-fpm.d/www.conf 修改为: ; The timeout for serving a single request after which the worker process will ; be killed. This option should be used when the ‘max_execution_time’ ini option ; does not stop script execution for some reason. A value of ’0′ means ‘off’. ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) ; Default Value: 0 request_terminate_timeout = 0 因为这个参数会直接杀掉php进程,然后重启php进程,这样前端nginx就会返回104: Connection reset by peer。这个过程是很慢,总体感觉就是网站很卡。 重启 php-fpm 和 Nginx 一切正常。 service nginx restart killall php-fpm php-fpm 再打开就OK了。 来自:http://www.th7.cn/Program/php/201408/254237.shtml Generated by Jackxiang's Bo-blog 2.1.1 Release