我有一个 Django 应用程序在 Nginx 后面的 Gunicorn 中运行。一切正常,除了一件奇怪的事情:我有一个“下载”视图和一个 RESTful json API。调用下载视图时,我使用 urllib2 访问 json API 以获取信息。并且当我尝试对 json api 执行此 http get 请求时,请求超时并出现错误 HTTP 错误 504:网关超时。
当我使用 ./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')
opener.open()
在 Gunicorn 中运行时,第 4 行中的调用会超时,而使用./manage.py runserver
everytihng 运行时工作正常(并且 api 调用只需要几毫秒。
有没有人有同样的问题?更重要的是:你是如何解决的?