Gunicorn的Nginx超时问题
我在gunicorn + nginx上运行django。 我正面临file upload的问题。 其实上传工作正常,但gunicorn超时,从而造成这在nginx:
2011/07/25 12:13:47 [error] 15169#0: *2317 upstream timed out (110: Connection timed out) while reading response header from upstream, client: IP-ADDRESS, server: SERVER, request: "GET /photos/events/event/25 HTTP/1.1", upstream: "http://127.0.0.1:29000/photos/events/event/25", host: "HOST", referrer: "REFERER_ADDRESS"
如果我刷新页面,我可以看到所有的照片上传就好了。 问题是,它会导致超时,从而给上传不起作用的印象。
这里是我的gunicorn conf:
bind = "127.0.0.1:29000" logfile = "/path/to/logs/gunicorn.log" workers = 3
我试着改变超时时间,但没有奏效。
您可以尝试在Nginx中升级您的代理传递的超时时间,方法是:
proxy_connect_timeout 75s; proxy_read_timeout 300s;
在/ var / nginx / sites-available / [site-config]或/var/nginx/nginx.conf中,如果你想增加nginx服务的所有站点的超时限制。
你必须添加--timeout 300
以及你的gunicorn进程/configuration。
这解决了我的问题在过去更大的上传。
这不是一个nginx超时,但可能是一个Gunicorn超时。 Gunicorn默认为30秒超时。
一般来说,您应该通过不需要超过30秒的端点返回来解决这个问题,但是如果这个端点很less使用,那么也可以增加这个超时值。 如果你这样做,你也应该增加gunicorn工作进程的数量。
为了增加超时和gunicorn的工作,你可以在开始时添加下面的命令行选项:
gunicorn – 超时120 – 工人
我们使用Django + nginx + gunicorn也遇到同样的问题。 从Gunicorn文档中我们已经configuration了几乎没有区别的优雅超时。
经过一番testing,我们发现解决scheme,要configuration的参数是:timeout(而不是正常超时)。 它像一个时钟一样工作
那么,做:
1)打开gunicornconfiguration文件
2)将TIMEOUT设置为您所需要的值 – 以秒为单位
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
这可能会帮助有类似问题的人。
我在我的Django应用程序中得到了来自nginx和gunicorn的超时错误。 由于我得到了来自nginx的超时错误,我从Django看不到真正的错误。 添加像fijterbuild议的新超时后。 我可以看到错误在settings.py文件中。
如果您将DEBUG设置为False,并且未在ALLOWED_HOSTS中添加域名,则可能会出现此错误。
我刚刚在settings.py中的ALLOWED_HOSTS中添加了域,错误消失了。
很简单的解决scheme