前言
今日,发生了一件懵逼的事情,通过内部接口获取数据的时候,概率性出现返回的数据被截断的问题。内部接口好好的为何突然出现问题了?此文将记录这次本应该很快解决却没有很快解决的过程。
正文
背景
内部接口分为5+3=8台机器,为什么这么说呢,5台是一直有的,而3台是刚新增的,问题就出在了这三台,由于负载均衡策略所以出现在前文说到的概率性出现返回的数据被截断的问题。
一般开发是没有机器权限的,在不申请临时机器权限的情况下。解决速度完全取决于运维,无果。
发现过程
1.先是四处埋点记日志,确认原因是日志被截断了。
2.由于无线上机器权限所以只好通过跳板机到拟真环境进行
curl -H 'Host:internal.xxx.com' '192.168.xx.xx/data/get_list.json?xxx=xxx'
操作来定位哪台机器出问题了。
是的,8台机器都试过去发现,真的是新增的3台有问题。
3.进一步确认机器上nginx的error日志报错了一堆:
2016/06/07 00:41:28 [crit] 32763#0: *5439 open() "/usr/local/nginx/fastcgi_temp/5/02/0000000025" failed (13: Permission denied)
while reading upstream, client: 203.171.237.2, server: internal.xxx.com, request: "GET /xxx/xxx