环境描述:nginx前段,proxy_pass到后端程序
故障描述:同样的请求,参数不同,一个可以正常访问,另外502
揪心的排查过程:1、首先http 502错误码: bad gateway(网关故障),代理服务器使用的服务器遇到来自响应链中上游的无效效应。2、从状态代码,以及实际情况,怀疑后端程序不稳定。排查nginx到后端程序的连接状态,持续ping telnet都没有问题。同时不停的请求正常的url无故障。3、nginx access日志查看,正常请求先会302 (重定向),然后返回200。但是错误请求只有502。同时查看后端程序,正常请求确实俩次。但是错误的请求,没有落后端(毕竟502了,落后端才诡异呢)4、开始纠结,胡乱猜。用chrome 开始bug,发现错误请求有一个很快的刷新,但是依旧502.抓不倒。5、智商low的开始怀疑后端程序哪里有问题,参数传的不对。6、下班前,研发来要nginx日志去排查,突然想到errorlog 没看。重点来了,error log里面报错upstream sent too big header while reading response header from upstream7、和研发确认了一下,正常请求302 后传递的数据少,但是有些数据header确实比较大8、修改nginx server段配置,proxy_buffer_size 16K;proxy_buffers 64 4K; nginx proxy doc/9、重启,解决问题