Djangoroidの奮闘記

python,django,angularJS1~三十路過ぎたプログラマーの奮闘記

Nginx<->uWSGI と、uWSGI<->Djangoの関係についておさらいする。

概要

Nginx<->uWSGI と、uWSGI<->Djangoの関係についておさらいする。

参考サイト

qiita.com

uWSGI で Django を使う方法 — Django 1.4 documentation

Setting up Django and your web server with uWSGI and nginx — uWSGI 2.0 documentation

Nginx<->uWSGI の関係について

  • Nginx---uWSGIプロトコル--- uwsgi で通信する。
  • さらにlinuxsocketが接続口になるので、Nginx---uWSGI--socket--uwsgi になる...はず。。
  • なので、nginxとuwsgiの連携については、以下のファイルの設定が必要になる。

    • Nginx

      • nginx がhttpリクエストを受けるポート(nginxは、バーチャルサーバを立てて、そこで受けるので、バーチャルサーバの受付ポートを指定する。)
      • nginxのバーチャルサーバが、uwsgiと通信するsocketを指定する。
      • nginx で受けたrequestをuwsgi_pass djangoで、djangoアプリに渡す。
    • uwsgi

      • uwsgi がnginxと通信するsocketを指定する。(上記と同じsocket)
      • uwsgi_params で各種パラメーターをセットする。(これは定型文がある)

uWSGI<->Djangoの関係について

  • uWSGI - Django は、djangowsgi.pyを読み込んでもらうことで、uwsgiサーバで、djangoが起動するようになる。なので、uWSGIとdjangoは、wsgi.pyの場所を指定するだけで基本OKなはず!

Nginx <-> Djangoの関係について

  • nginx で受けたrequestをuwsgi_pass djangoで、djangoアプリに渡す。
  • nginx の方で、画像などは処理してもらうみたいだけど、s3とか使ってたらあんま関係ないのかな。いや、s3バケットurl/staticとかで指定したら、nginxで配信とかはやってくれるのかな。だからやっぱ必要なのかも!