我已经设置了gunicorn与3个工人,30个工人连接和使用eventlet工人类。它被设置在Nginx后面。每请求几次,我就会在日志里看到这个。
[ERROR] gunicorn.error: WORKER TIMEOUT (pid:23475)
None
[INFO] gunicorn.error: Booting worker with pid: 23514
为什么会这样?我怎样才能知道哪里出了问题呢?
我已经设置了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