Mat*_*ngo 8 nginx django gunicorn
我已经为我们的 Django 驱动的应用程序组合了一个集成服务器。一些功能仍处于试验阶段,会导致请求过长。
我现在可以接受糟糕的表现,但我需要能够整合。每当我们使用导致长请求的功能时,应用程序就会挂起(如预期的那样),然后在大约一分半钟后返回“502 - Bad Gateway”。该应用程序的其余部分工作正常。
我检查了 gunicorn 日志,每当发生这种情况时,我都会得到这样的一行
2012-01-20 17:30:13 [23128] [DEBUG] GET /results/
2012-01-20 17:30:43 [23125] [ERROR] WORKER TIMEOUT (pid:23128)
Traceback (most recent call last):
File "/home/demo/python_envs/frontend/lib/python2.6/site-packages/gunicorn/app/base.py", line 111, in run
os.setpgrp()
OSError: [Errno 1] Operation not permitted
Run Code Online (Sandbox Code Playgroud)
但是,这发生在实际工作人员超时之前很久,我将其设置为 10 分钟只是为了确保。这是运行 gunicorn 的 upstart 脚本的一部分。
description "..."
start on runlevel [2345]
stop on runlevel [!2345]
#Send KILL after 5 seconds
kill timeout 5
respawn
env VENV="/path/to/a/virtual/env/"
#how to know the pid
pid file $VENV/run/guniconr-8080.pid
script
exec sudo -u demo $VENV/bin/gunicorn_django --preload --daemon -w 4 -t 600 --log-level debug --log-file $VENV/run/gunicorn-8080.log -p $VENV/run/gunicorn-8080.pid -b localhost:8080 /path/to/settings.py
end script
Run Code Online (Sandbox Code Playgroud)
我正在运行 gunicorn 0.13.4 版。任何帮助将不胜感激。
502 Bad Gateway意味着您的 gunicorn 工人超时。您可以--timeout向gnuicorn命令添加选项。默认为 30 秒。
正如@greg-k 所指出的,proxy_read_timeoutNginx 选项控制了另一个超时。如果您看到504 Gateway Timeout错误,您可以调整此选项。
小智 3
这可能是你的 nginx 配置的问题。您是否配置了 proxy_read_timeout 值?
该指令设置代理服务器响应的读取超时。它决定了 nginx 等待请求响应的时间。超时不是针对整个响应而建立的,而是仅在两次读取操作之间建立的。
来源: http: //wiki.nginx.org/HttpProxyModule#proxy_read_timeout
| 归档时间: |
|
| 查看次数: |
12370 次 |
| 最近记录: |