複数のDjangoアプリケーションをnginxでどのようにデプロイするか

Djangoアプリケーションを複数展開する場合、Nginxを用いた展開を行うには、以下の手順を行います。

  1. Nginxのインストールと設定:まず、Nginxをインストールし、基本的なサーバの設定を行います。Nginxは次のコマンドでインストールできます:
  2. sudo apt-get install nginx
  3. 次に、サーバーの設定を行うには、Nginxの設定ファイル/etc/nginx/nginx.confを編集できます。
  4. 各Django应用ごとに独立したバーチャル環境を作成し、異なるディレクトリにインストールします。バーチャル環境の作成にはvirtualenvを使用できます:
  5. virtualenv env1
    source env1/bin/activate
    pip install django
  6. 各アプリについても同じ手順を繰り返して仮想環境を作成します。
  7. uWSGIのセットアップ: uWSGIは、Djangoアプリケーションの実行にNginxと共に使用できるWebサーバーゲートウェイインターフェイスです。各Djangoアプリケーションを個別のuWSGIプロセスに関連付け、設定ファイルで実現できます。各DjangoアプリケーションのuWSGIプロセスを設定するために、uWSGI設定ファイルを作成します(例:app1_uwsgi.ini):
  8. chdir=/path/to/app1
    module=myapp.wsgi:application
    master=True
    processes=4
    socket=/path/to/app1.sock
    chmod-socket=664
    vacuum=True
  9. それぞれのアプリケーションについて上述の手順を繰り返し uWSGI の設定ファイルを作成してください。
  10. Nginxリバースプロキシの設定:Nginxの設定ファイル/etc/nginx/nginx.confを編集し、以下の設定ブロックを追加してリバースプロキシを設定します:
  11. サーバー {
    ポート 80 でリッスン
    サーバー名 example.com場所 /app1/ {
    uwsgi を unix:/path/to/app1.sock に渡す
    uwsgi パラメータを含める
    }

    場所 /app2/ {
    uwsgi を unix:/path/to/app2.sock に渡す
    uwsgi パラメータを含める
    }
    }

  12. 上記の構成では、/app1/ と /app2/ はあなたがそれぞれの Django アプリケーションのために設定する URL パスであり、/path/to/app1.sock、/path/to/app2.sock はそれぞれのアプリケーション用の uWSGI ソケットパスです。
  13. 設定完了ら、変更を反映させるためにNginxサーバーを再起動します。
  14. sudo service nginx restart

各 Django アプリケーションでは、ブラウザー経由で各 URL のパスにアクセスすることで、すぐにアクセスできるようになるはずです。

bannerAds