12

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 呼び出しには数ミリ秒しかかかりません。

誰かが同じ問題を抱えていますか?さらに重要なことは、どのように解決しましたか?

4

1 に答える 1