nginx 502 bad gateway
以前从未出过问题,今天就不停的502 badgateway, 环境是nginx+django+uwsgi, django 版本1.11, uwsgi 2.0; 具体表现是nginx 502 badgateway, 但是django是可以收到消息的,但是无法返回, uwsgi 没有找到access的记录;
nginx报错为
upstream prematurely closed connection while reading response header from upstream, client: ip, server: ip, request: "POST url HTTP/1.1", upstream: "uwsgi://127.0.0.1:18001", host: "ip:19020"
改nginx 的timeout是没有作用的
nginx上游出错主动断开连接,可以看到是uwsgi的问题,uwsgi重启就ok了,可能是uwsgi的问题,是起了太多的项目了么,回头好好看一看uwsgi的配置教学,可能是配置出错了.
然而并不是,出现这种情况一般都是自己的问题,处理业务中做了太多了数据库操作或者是不恰当的事务性处理(比如在事务中做复杂的逻辑计算),这些才是主要原因,
有几个结论就是:
1,少做数据库的操作,
2,如果要做多个数据库的操作,尽可能合并到事务中去做,因为事务是在内存中进行的,然后只是写了一次硬盘所以会提高效率
3,做事务性操作之前请现将逻辑计算完,因为事务性的操作会锁定表或者是行,其他业务不能够写对应的数据