DjangoにおけるNginxとgunicornの役割(Nginxその1)

Nginx、gunicorn、Djangoの組み合わせは、現在、最も勢いのある組み合わせです。今から環境を構築するのであればApache(アパッチ)よりもお勧めです。そこで、難しい説明は後回しにして、それぞれの役割を簡単に説明したいと思います。

0.VPSサーバーでDjangoを始めてみたシリーズ

この記事は「VPSサーバーでDjangoを始めてみたシリーズ」の記事です。一連の記事は、以下のリンク集を参照してください。

Django♪VPSサーバーでDjangoを始めてみたシリーズ

1.相関関係

下図はNginx(エンジンエックス)、gunicorn(グリーンユニコーン)、Djangoの相関関係の図です。

01_Nginx_gunicorn_Django_03

(1) Nginxの役割

自分のPC(クライアント)から、ChromeやSafariなどのWebブラウザで、VPSサーバーのホームページを閲覧するときを想定すると、クライアントからの要求は最初にWebサーバーと呼ばれるソフトであるNginxが受け付けます。

Nginxは、html、CSS、JavaScriptなどで構成された静的なページの処理は速いのですが、動的なページは扱えません。

そこで、静的なページの要求の場合はNginxが独断でページのデータをWebブラウザに返します。一方、動的なページの要求に対しては、処理をgunicornを介してDjangoに丸投げします。

更に、Nginxは特定のIPアドレスを拒否するといったこともできるので門番のような役割を果たすことができ、セキュリティーを強化できます。

(2) 静的なページと動的なページ

なお、静的なページとは、毎回、誰が見ても同じ内容が表示されるページで、基本的に静的なページの内容はデータを隠蔽する必要はありません。

一方、動的なページは例えばTwitterのツイートのようにクライアントによって表示が変化します。また、データベースの内容は公開されては困る場合もあります。

(3) Djangoの役割

Djangoは動的なページを扱うことが出来るアプリケーションであり、「Webアプリケーションフレームワーク」と呼ばれます。

このように動的なページを扱うDjangoは、静的なページも扱えますが、データを丁寧に扱うために処理が遅くなってしまう傾向があります。

(4) gunicornの役割

また、gunicornは、NginxとDjangoのデータのやりとりを高速に実行する「アプリケーションサーバー」でありWSGIという規格でデータをやりとりするので、「WSGIサーバー」と呼ばれることもあります。

2.様々な構成がある

Nginx、gunicorn、Djangoは、いずれも多機能なアプリケーションなので、3つが必ず必要なわけではありません。NginxとDjangoだけで構成できたり、gunicornとDjangoだけでも構成できます。

つまり、書籍やインターネットの情報は、どの構成について説明している情報なのかを意識する必要があります。

しかし、それぞれの長所を活かし、最も効率がよいとして多用されているのが上図のような構成なのです。

DjangoにNginxやgunicornを組み合わせて環境を構築するときには、それぞれの役割を理解した上で活用しましょう。

私が実際にレンタルしたVPSサーバー

私が実際にレンタルしたVPSサーバーはConoHa VPSです。私は1GBのプランを申し込みました。VPSサーバーは一般のレンタルサーバーと異なりOSやアプリケーションを自由に設定できるので、Pythonで計算した結果をサイトに表示することもできます。

なお、ConoHa VPSの特長として、サーバーのディスクイメージを丸ごとバックアップできるイメージ保存機能を無料で使用することができます。コードを変更して元に戻せなくなった場合にも安心です。

また、ConoHa VPSは途中でプランをスケールアップできるだけでなく、スケールダウンすることもできます。つまり、2Gプランを1Gプランに変更することができます。ただし、512MBプランだけはスケールアップ・ダウン機能が使用できないので注意してください。

また、初期費用なしで3日だけ借り、3日分の費用だけ払うといったことも可能なので気軽に始められます。※時間課金(月の上限額は決まっています)



その他

Twitterへのリンクです。SNSもはじめました♪

以下、私が光回線を導入した時の記事一覧です。
 (1) 2020年「光回線は値段で選ぶ」では後悔する ←宅内工事の状況も説明しています。
 (2) NURO光の開通までWiFiルーターを格安レンタルできる
 (3) NURO光の屋外工事の状況をご紹介。その日に開通!
 (4) 光回線開通!実測するとNURO光はやっぱり速かった
 (5) ネット上のNURO光紹介特典は個人情報がもれないの?