LoginSignup
9
5

More than 5 years have passed since last update.

nginx + gunicorn + Django タイムアウト処理

Last updated at Posted at 2019-01-22

nginx と gunicorn と Djangoでページを作ったら、
重いファイルをアップロードするときにめちゃくちゃ時間かかってタイムアウトした話。
タイムアウトの設定を変えましょう。

Django

Djangoはviewsに処理が書いてあるはずですが、
chunkで処理していれば大丈夫っぽいです。

nginx

とりあえずnginxのタイムアウト処理を変えましょう。

etc/nginx/nginx.conf
(略)
http {
    (略)
    proxy_read_timeout 300;
}
(略)

httpの中に、proxy_read_timeoutを追加します。今回は5分にしました。

参考:Nginx設定のまとめ
参考:お名前.com VPS にNginxでWordPressを構築。設定の意味もまとめた

gunicorn

gunicorn起動時に引数をわたすだけでした。
gunicorn hogehoge.wsgi --bind=0.0.0.0:8000 -t 300

あらまぁ簡単。

余談:エラーログ

・nginxのerror log

エラーログどこに書き出されるんでしょう?
その設定は、nginx.confの上部に書かれているはずです。
/var/log/nginx/error.log
別のターミナルを開いて、tail /var/log/nginx/error.logとすると、後ろ数行がターミナルで確認できます。errorlog開いたまま、アプリを実行してどんなログが出されるか確認しましょう。

・gunicornのerror log

gunicornのエラーログも引数で指定できます。
--log-level=DEBUG
をしていしてやると、エラーログがはきだされます。

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5