【发布时间】:2013-06-09 00:02:27
【问题描述】:
我有一个 Django 应用程序在 Nginx 后面的 Gunicorn 中运行。一切正常,除了一件奇怪的事情:我有一个“下载”视图和一个 RESTful json API。调用下载视图时,我使用 urllib2 访问 json API 以获取信息。而正是当我尝试对 json api 执行此 http get 请求时,请求超时并出现错误 HTTP Error 504: Gateway Time-out。
当我使用 ./manage.py runserver 运行代码时,一切正常。对 json api 的 http get 请求也只需要几毫秒,所以没有超时的危险。
这里是伪代码的情况:
myproject/views.py:(访问方式为:http://myproject.com/download)
1 def download(request, *args, **kwargs):
2 import urllib2
3 opener = urllib2.build_opener()
4 opener.open('http://myproject.com/api/get_project_stats')
在 Gunicorn 中运行时,第四行的 opener.open() 调用会超时,而使用 ./manage.py runservereverytihng 运行时可以正常工作(并且 api 调用只需要几毫秒。
有人遇到过同样的问题吗?更重要的是:您是如何解决的?
【问题讨论】:
标签: django nginx timeout gunicorn