一次nginx “time out”故障排查

研发请求协助排查一个nginx故障。

描述如下:

在内部环境测试没问题。

打包到生产环境后,访问nginx接口地址超时。

研发比对后怀疑是nginx版本不一致导致。内部版本1.23.2,生产环境1.23.1.

收到信息第一感觉不是nginx的问题。不过先测试一下,现象跟研发描述的一样。

登录服务器,看了nginx.conf配置,发现访问这个端口后,实际做了转发。转发给内网地址:http://10.0.0.7:8000

这个端口是java启动的一个服务。

使用ss -lntp查看,这个服务端口是存在的。

在使用内存命令测试端口
nc -w 2 -z -v 10.0.0.7 8000

端口也是有反应。

老办法,查看access.log,看到输出500错误码。

再查看error.log,确实有timeout的错误提示。

 这样看来是转发给接口地址后没有了反馈。

不过为了排除版本问题,还是升级到1.23.2,当然问题依旧。

研发只好再代码里添加的debug信息。

根据debug信息输出,可以判断到,请求接受到了,但是再调用第一个function时就没有反馈信息了。虽然还不知道啥问题,但是基本确定就是程序某个地方导致故障。

接下来就是研发一点点排查,最终结果是代码打包时,没有修改database连接相关信息,保留的是内部环境参数。连接数据库错误后导致后续处理超时卡死。

总结:

内部测试通过,放到生产环境时出现问题,很多时候就是使用了内部环境参数导致的。

建议把相关参数提取出来,作为配置文件单独存放。

排查问题,顺着执行流,排除其它环节后,剩下的环节就是问题所在。

最后一点就是不能急躁,保持冷静。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值