# recv() failed
## 报错内容:
>2020/03/13 12:10:34 [error] 31720#0: *2661487 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 67.229.103.26, server: www.dyhjw.com, request: "POST /api/getHqLastInfo HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi-56.sock:", host: "www.dyhjw.com"
## 说明:
之前解决过这个问题,现在这个问题又重现了。看了阿里云负载均衡常见问题,有了更清晰的认识,链接文章如下:[https://help.aliyun.com/knowledge\_detail/55207.html?spm=a2c4g.11174283.6.695.325e1192wftz5C](https://help.aliyun.com/knowledge_detail/55207.html?spm=a2c4g.11174283.6.695.325e1192wftz5C)
## 原因:
`PHP`脚本执行时间处理超时,即如果`php-fpm`处理`PHP`脚本的时长超过了`Nginx`中`request_terminate_timeout`设置的值,就会出现`502 Bad Gateway`的错误,同时在` Nginx`日志中可以查看到如下错误记录
>[error] 1760#0: *251777 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: localhost, request: “GET /timeoutmore.php HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9000”
## 需要了解
参考文章:[https://blog.csdn.net/loophome/article/details/78604986](https://blog.csdn.net/loophome/article/details/78604986)
### 1、`php-fpm` 处理 `PHP`脚本时间,在哪里?
处理脚本的时间是:`max_execution_time`
位置在 `/www/server/php/56/etc/php.ini`
![](https://img.kancloud.cn/49/df/49df774aa546c13cb80c6e26ab83da56_621x215.png)
### 2、`nginx` 中的 `request_terminate_timeout` 的值是,在哪里?
答:`request_terminate_timeout` 配置在` php-fpm.conf` 中,位置在: `/www/server/php/56/etc/php-fpm.conf`
配置参数是: `request_terminate_timeout`
原先是`100`,我们更改为`300`:
![](https://img.kancloud.cn/c4/25/c425aa9e5827c65330e80187aac90988_446x473.png)
## 错误分析:
原因是: `max_execution_time=300` 执行时间大于 `request_terminate_timeout=100` 执行时间
一般可能执行时间都是小于100的,但当于100的话就报错!
## 解决方法
1、`php.ini` 把 `max_execution_time` 值调大一些,由 `300`调整为 `600`
2、`php-fpm.conf` 把 `request_terminate_timeout` 值调大一些,由 `100` 调整为 `0` (PS:0为无限制!)
## 涉及命令
1、`vim /www/server/php/56/etc/php.ini` 查找 `max_execution_time`
2、`vim /www/server/php/56/etc/php-fpm.conf` 查看 `request_terminate_timeout`
3、重新启动 `php5.6`
- (一)服务器架构
- ECS
- (二)宝塔安装
- 宝塔的webhook使用方法
- (三)配置更改
- php-fpm.conf
- proxy.conf
- nginx.conf
- (四)运维日志
- nginx日志
- nginx错误日志
- open socket
- fpm日志
- php-fpm错误日志
- seems busy
- slow.log
- 站点日志
- dyhjw.log
- 站点错误日志
- dyhjw.error.log
- 499错误
- recv()
- recv() failed
- recv() failed-第3种
- no live upstreams
- upstream prematurely
- cache_file_has_too_long_header
- FastCGI sent in stderr
- directory index of is forbidden
- recv() failed-第4种
- (五)站点配置
- appapi配置
- 用到redis的网站
- workman不能运行
- 快讯启动
- dyhjw伪静态
- (六)其他问题
- php-5.6重新启动报错
- 挂载盘命令
- 服务器怎么增加黑名单不让指定IP登录
- (七)自定义页面
- 自定义404页面
- 自定义502页面
- (八)问题
- 负载均衡的文件在哪里
- 站点的负载均衡服务器文件在哪里
- 其他知识
- Nginx--keepalive的配置
- Nginx反爬虫攻略:禁止某些User Agent抓取网站
- php脚本执行时间配置
- 运维记录