Gunicorn进程无法回应

时间:2014-11-19 08:59:21

标签: django gunicorn

设置如下

Nginx反向代理 - > gunicorn - > django app

在某个时间,我发现nginx正在记录连接超时,并发回HTTP 502错误响应。

原因是枪炮儿童过程没有响应30秒,并被枪炮大师重新启动。

我试图找出为什么我的枪炮过程在发回回复时陷入困境。从日志记录开始,django app逻辑已成功完成。我怀疑当django通过wsgi返回对gunicorn的响应时,出现了问题。

其他一些观点:

1)这些请求的响应大小很大。 ~200 kB。 2)当我重播这些请求时,它们工作正常。 3)这可以在多个服务器上同时发生约100个请求。

我无法确定出错的地方。任何帮助,将不胜感激!

1 个答案:

答案 0 :(得分:1)

当你有一些负载(100个连接)时,你可能会让gunicorn响应缓慢。 尝试通过添加:

来增加Nginx中代理传递的超时
proxy_connect_timeout 300s;
proxy_read_timeout 300s;

如果无效,请尝试更改gunicorn配置中的时间:

NUM_WORKERS=3
TIMEOUT=120

exec gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--timeout $TIMEOUT \
--log-level=debug \
--bind=127.0.0.1:9000 \
--pid=$PIDFILE

此外还添加了--log-level=debug \以从日志中获取更多信息。