Djangoでのウェブサーバーはどうやるの

2024年6月18日

Djangoプロジェクトをデプロイするには、通常はウェブサーバー(例: NginxやApache)とアプリケーションサーバー(例: GunicornやuWSGI)の組み合わせが使用されます。以下に、DjangoプロジェクトをNginxとGunicornを使用してデプロイする手順を簡単に示します。これは一般的な手順であり、実際の環境によって変更が必要な場合があります。

  1. Gunicornのインストール:

    Gunicornをインストールします。プロジェクトの仮想環境にアクセスして以下のコマンドを実行します。

    bash
    pip install gunicorn
    
  2. Djangoプロジェクトの設定:

    settings.py ファイルにおいて、ALLOWED_HOSTS にデプロイするドメインを設定します。

    python
    # settings.py
    
    ALLOWED_HOSTS = ['your-domain.com', 'your-ip-address']
    
  3. GunicornでDjangoを実行:

    Gunicornを使ってDjangoプロジェクトを実行します。

    bash
    gunicorn your_project_name.wsgi:application
    

    your_project_name はDjangoプロジェクトのディレクトリ名に置き換えてください。

  4. Nginxのインストール:

    ウェブサーバーとしてNginxをインストールします。

    bash
    sudo apt update
    sudo apt install nginx
    
  5. Nginxの設定:

    NginxでGunicornをリバースプロキシとして利用するため、Nginxの設定を行います。以下は、簡単な例です。

    /etc/nginx/sites-available/your_project_name に新しい設定ファイルを作成します。

    nginx
    server {
        listen 80;
        server_name your-domain.com;
    
        location = /favicon.ico { access_log off; log_not_found off; }
        location /static/ {
            root /path/to/your_project_name;
        }
    
        location / {
            include proxy_params;
            proxy_pass http://127.0.0.1:8000;  # Gunicornがリスンしているポートに合わせて設定
        }
    }
    

    そして、Nginxの sites-enabled ディレクトリにシンボリックリンクを作成します。

    bash
    sudo ln -s /etc/nginx/sites-available/your_project_name /etc/nginx/sites-enabled
    
  6. Nginxの再起動:

    Nginxを再起動して変更を反映します。

    bash
    sudo service nginx restart
    

これで、DjangoプロジェクトがGunicornとNginxを使ってデプロイされ、ウェブサーバーを通じてアクセスできるようになりました。実際の環境によっては、SSLの設定やセキュリティの向上のための調整が必要です。

未分類

Posted by ぼっち