我已经设置了gunicorn与3个工人,30个工人连接和使用eventlet工人类。它被设置在Nginx后面。每请求几次,我就会在日志里看到这个。

[ERROR] gunicorn.error: WORKER TIMEOUT (pid:23475)
None
[INFO] gunicorn.error: Booting worker with pid: 23514

为什么会这样?我怎样才能知道哪里出了问题呢?


当前回答

对我来说,这是因为我忘记在数据库服务器上为我的Django设置防火墙规则。

其他回答

除了已经建议的gunicorn超时设置,因为你在前面使用nginx,你可以检查这两个参数是否有效,proxy_connect_timeout和proxy_read_timeout默认为60秒。可以在nginx配置文件中这样设置它们,

proxy_connect_timeout 120s;
proxy_read_timeout 120s;

如果使用GCP,则必须为每个实例类型设置worker。

链接到GCP最佳实践https://cloud.google.com/appengine/docs/standard/python3/runtime

使用——log-level debug运行Gunicorn。

它应该会给你一个应用程序堆栈跟踪。

对我来说,这是因为我忘记在数据库服务器上为我的Django设置防火墙规则。

在谷歌云 只需在app.yaml的入口点添加——timeout 90

entrypoint: gunicorn -b :$PORT main:app --timeout 90