uwsgi + nginx:重载时的状态502

时间:2018-06-13 19:02:14

标签: django nginx uwsgi

我有这个nginx + uwsgi + django应用程序,效果很好。

但是当服务器上的负载变得更重时,我开始在随机请求中获得这502个错误。

这是uwsgi.ini的相关部分:

master = true
#more processes, more computing power
processes = 32
threads = 3
post-buffering = 1
# this one must match net.core.somaxconn
listen = 8000

我有大量的进程来处理大量的并发请求 - 我甚至在其上添加了一些线程 - 但我必须承认我期望listen指令应该处理它。实际上,当我超过32 * 3个同时请求时,似乎会发生502错误。

我理解它的方式,监听应该允许最多8000个(在这种情况下)活动连接,等待服务器服务,但它似乎没有任何严重的影响。

uwsgi log清楚地说这是活跃的:

your server socket listen backlog is limited to 8000 connections

但我似乎误解了设置的效果。

无论如何,我只想解决502,所以我愿意接受任何方向的建议。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,在负载下,我开始从uWSGI获得502的支持。

长话短说,请检查您是否在HTTP/1.1上,是否在使用--http11-socket,以及您在uWSGI=2.0.16或更高版本上。

http / 1.1默认情况下进行持久连接。我发现,当侦听队列增加并且连接开始断开时,就会发生502。看看我的文章全文吧

https://wontonst.blogspot.com/2019/06/squishing-performance-bug-in.html