nginx报错upstream prematurely closed connection while reading response header from upstream

今天出现了一个这样的问题
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

然后重启服务器解决问题!


版权声明:本文为mr_zhongjie原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。