Django本番運用のためのGunicornプロセス(ステップ1)
今回の内容について
Python(プログラム言語、ライブラリ)を使ってWebやWebアプリのバックエンド(後ろ側)のシステムを構築するためにDajango(フレームワーク)、Gunicorn(プロセス)があります。
今回は、書籍等で見かける開発環境やテスト環境へのデプロイではなく、自前のWebの本番サイトへGunicornを利用してDjangoシステムを組み込んだ内容について何回かステップを分けて記載していきたいと思います。
Dajango本番運用前に「決めておくべき内容」
項目 | 内容・例 |
プロジェクト名 | reserve_site(Django プロジェクト) |
アプリ名 | booking(予約機能を提供) |
仮想環境パス | /home/pi/reserve_site/venv |
ドメイン名 | ootani.tokyo(サーバー公開用) |
SECRET_KEY | セキュアな長い文字列(自動生成が推奨) |
管理者ユーザー情報 | Django 管理者のユーザー名・メール・パスワード |
サーバーポート 例: | XXXX(Gunicorn バインド先) |
【全体の流れ】
1・Djangoアプリの準備
2・Linuxサーバー環境の準備
3・Gunicorn設定(WSGIサーバー)
4・Nginx または Apache のWebサーバー設定
5・セキュリティ(HTTPSやファイアウォール)
6・自動起動設定(systemd)
Gunicorn(Green Unicorn)は、Python WSGIアプリケーションのためのUNIX系HTTPサーバーです。DjangoなどのPythonフレームワークを本番運用するための中核となるプロセスです。
【概要】Gunicornとは?
項目 | 説明 |
正式名称 | Green Unicorn |
タイプ | WSGI HTTP Server(アプリサーバー) |
目的 | DjangoやFlaskなどWSGIアプリを実行して、HTTPリクエストを処理する |
なぜ必要か? | Django標準のrunserverは本番環境に適していないため(開発専用) |
外部連携 | NginxやApacheとリバースプロキシで組み合わせて使うことが多い |
【Gunicornのシステム動作構造】
GunicornがHTTPリクエストを処理するまでの流れ:
Gunicornは ローカルポート(例: 127.0.0.1:8000)で待機して、リクエストを受け取り、
Djangoの wsgi.py に接続してアプリを起動します。
【Nginxとの役割分担】
機能 | 担当 |
HTTPS / ポート開放 | Nginx |
静的ファイル配信 | Nginx |
動的ページ処理 | Gunicorn(+Django) |
Gunicornの強みまとめ
特徴 内容
・軽量 & 高速 起動が早く、設定もシンプル
・マルチプロセス対応 ワーカーを複数立ち上げて並列処理が可能
・高い互換性 Django / Flask などWSGI準拠アプリに対応
・リバースプロキシ構成 Nginxなどとの組み合わせに最適
・UNIX/Linux向け Windows対応は限定的(本番向きではない)
注意点
Gunicornは外部から直接アクセスされる設計ではないので、必ずNginxなどのWebサーバーとセットで使うのが原則です。
静的ファイル(画像・CSS)はGunicornでは処理しないため、collectstaticでNginxに任せる構成が必要です。