今天出现了一个这样的问题
nginx报错upstream prematurely closed connection while reading response header from upstream
导致这样的问题原因是,上游服务器阻塞了,没有响应,然后导致接口无法连接,从nginx内部看http的tcp并没有建立连接或者只是完成3次挥手的一半,然后服务器一直没有响应syn标记导致
发现这样的问题之后,我的上游服务器使用的是uwsgi,于是我看了看我的uwsgi报错日志
invalid request block size: 4139 (max 4096)...skip
上面的问题很直观,说你的数据包大小是4139,最大是4096,所以是超过了,然后导致uwsgi无法处理,然后nginx无法得到响应,导致接口调用失败,nginx报错502
解决办法:在uwsgi配置文件中加入一个配置
buffer-size = 65536
然后重启服务器解决问题!