Nginx の背後にある Gunicorn で Django アプリケーションを実行しています。「ダウンロード」ビューと RESTful json API があります。ダウンロード ビューを呼び出すときは、urllib2 を使用して json API にアクセスし、情報を取得します。そして、まさにこの http get 要求を json api に実行しようとすると、要求がエラー HTTP エラー 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')
4 行目のopener.open()
呼び出しは、Gunicorn で実行しているときにタイムアウトになり、everytihng で実行すると正常に./manage.py runserver
動作します (API 呼び出しには数ミリ秒しかかかりません。
誰かが同じ問題を抱えていますか?さらに重要なことは、どのように解決しましたか?