nginx php 104,记一次nginx 502排错经历:recv() failed (104: Connection reset by peer)

开发了一个新项目,开发环境完全正常,部署至测试环境时,直接报502,换了几台测试机器,有正常的也有依然报502的……

24515cabea9d8bfb40d15dc3fb8d1bc1.png

环境

开发、测试、生产环境均是CentOS 6.8的系统,Web环境是nginx+PHP7.2

现象

1.新项目页面直接显示502错误,其它项目均正常,项目外打印phpinfo正常

2.查看nginx日志多数都是

[error] 6048#6048: *2166 recv() failed (104: Connection reset by peer) while reading response header from upstream

排查

1.查找网上相关资料,修改php.ini中的和php-fpm.conf相关配置,包括max_execution_time、pm.max_children、pm.max_requests等网上提供的各种参数,仍然不起作用

2.使用strace -p指令,依然无法直接定位,监测到对应的php-fpm子进程接收到request请求后,未能完全解析完,close掉了

解决

由于初次使用strace指令,加之对此指令了解不多,并没能从底层的请求解析层面定位问题,而是通过正常与不正常环境的多次对比及项目代码里的断点调试最终推敲到问题所在:对应的zookeeper扩展版本未按部署手册中的版本号部署,而是测试部门的同事使用了新的版本号,最主要的是新版本竟然是个alpha版

建议

部署新项目环境一定要保持环境及扩展版本一致,以免耽搁过多的宝贵时间,同时对也会给自己的工作带来不利影响。笔者反复排查定位这个问题的根源,前后竟浪费掉了三天时间,好在问题源头没出在我们研发组身上,大家都懂得……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值