ホームページ >バックエンド開発 >Python チュートリアル >Gunicorn と Nginx を使用したスケーラブルな Django アプリケーションの構築

Gunicorn と Nginx を使用したスケーラブルな Django アプリケーションの構築

Patricia Arquette
Patricia Arquetteオリジナル
2024-09-26 06:40:03955ブラウズ

Building a Scalable Django Application with Gunicorn and Nginx

  • Web アプリのスケーリングは成功のために不可欠です。
  • Django は優れていますが、真のスケーラビリティを実現するには Gunicorn と Nginx が必要です。
  • この投稿では、Gunicorn と Nginx を使用してスケーラブルな Django アプリを構築する方法を示します。
  • この投稿は「Kali Linux」に続きます。任意の Linux ベースの OS を使用できます。

導入:

  • プロジェクトを成功させるには、増加するユーザーとリクエストを処理できる Web アプリケーションを構築することが不可欠です。
  • 強力な Python フレームワークである Django は強固な基盤を提供しますが、真のスケーラビリティを得るには、Gunicorn や Nginx などのツールの力を活用する必要があります。
  • この投稿では、Gunicorn と Nginx を使用してスケーラブルな Django アプリケーションをセットアップし、Web サイトが増大するユーザー ベースの要求に確実に対応できるようにするプロセスを説明します。

⚙️ セットアップ -

  • 私は Linux でこれを行っています。
  • まず、python3、pip、nginx がインストールされているかどうかを確認します。
  • インストールするには、このコマンドを使用します (ホーム/デスクトップまたは新しい端末にインストールします)
sudo apt install python3 python3-pip nginx 
  • 次に、仮想環境を作成します (新しいフォルダーを作成しますか?)
  • 環境をアクティブ化する
source environment_name/bin/activate   # use name created above "environment_name"
  • パッケージをインストールしますか?環境の中で
    • ジャンゴ、ガニコーン
pip install django
pip install gunicorn

// or directly install both
pip install django gunicorn

Django プロジェクトの作成

  • このコマンドを使用して Django プロジェクトを作成します
django-admin startproject myproject      # use any name "myproject"

Gunicorn 構成ファイルの作成

  • このコマンドを使用します
nano gunicorn_conf.py  # use any name but using same better "gunicorn_conf.py"
  • 「gunicorn_config.py」に次のコードを追加します。
import multiprocessing

bind = '127.0.0.1:8000' # Django running port/link
workers = multiprocessing.cpu_count() * 2 + 1
  • 「CTRL + o」(保存するには)を使用してファイルを保存し、ENTER を押し、「CTRL + X」(終了するには)を押します
  • これによりワーカーが作成され、Django 実行リンクも追加する必要があります。 ### gunicorn を使用して Django プロジェクト/アプリケーションを実行します
  • まずプロジェクトフォルダーに移動します
cd myproject   # navigate to Django Project "myproject"
  • 次にこのコマンドを実行します
gunicorn myapp.wsgi:application -c ../gunicorn_conf.py  # here myapp is myproject

# here "myapp" is a Django project name, and at last gunicorn_conf.py is a gunicorn configuration file which created above/before.
  • Django プロジェクトにいくつかの変更を加えます
  • まず、プロジェクト フォルダーの settings.py 内のコードをいくつか変更します。ディレクトリ myproject/myproject/settings.py >ジャンゴプロジェクト
  • これには、VS Code などのコード エディターを使用します。ターミナルから開くには、このコマンドを使用します
code- oss

# to open vs code from terminal
  • このコードを追加してください
# example code
ALLOWED_HOSTS = ['localhost', '0.0.0.0', '127.0.0.1'] # use IP address here
  • 上記のコマンドでは IP アドレスを使用し、それを取得するために別の新しいターミナルを開き、このコマンドを実行してネットワークに関するすべてを取得しました。
ifconfig

Nginx構成ファイルを作成する

  • 別の新しいターミナルを開き、次のコマンドを実行します
sudo nano /etc/nginx/sites-available/myapp       # use any name "myapp"

# better use vs code instead of nano
sudo code- oss /etc/nginx/sites-available/myapp   # check code-oss
  • そのnginxファイルにコードを追加します
server {
    listen 80;
    server_name your_domain.com;  # Replace with your domain or IP address
    # example for aboveline: server_name 'ipaddress' 'another domain' ;

    location / {
        proxy_pass http://127.0.0.1:8000;  # Gunicorn's default address
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
  • ファイルを保存します
  • シンボリック リンクを作成して Nginx 構成を有効にし、次のコマンドを実行します
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled

# change "myapp" to nginx config file name used above
  • それだけです。 ## テスト:
  • まず、Nginx 設定ファイルに構文エラーがないか確認します。
sudo nginx -t
  • エラーがない場合は、まず次のコマンドを使用して Nginx を再起動します。
sudo systemctl restart nginx

Nginx 用のファイアウォールの設定

  • 新しいターミナルを開き、このパッケージをインストールします
sudo apt install ufw
  • ファイアウォールを通過する Nginx を許可します
sudo ufw allow 'Nginx Full'

使用説明書 -

  • まず新しいターミナルを開いてNginxを起動します
sudo systemctl start nginx
  • ここで完全なプロジェクトを開始するには、ターミナルを開き、作成された virtualenv に移動してアクティブ化します。
gunicorn myapp.wsgi:application -c ../gunicorn_conf.py

# in above code "myapp" is a Django project name
# last gunicorn_conf.py is a gunicorn configuration file name
  • これで完全なプロジェクトが始まりました。
  • これで、IP アドレスを使用して django プロジェクトを開くことができます。
  • ブラウザに移動し、IP アドレスで検索します。
  • Nginx を停止するには、このコマンドを使用します
sudo systemctl stop nginx

コーディングを楽しんでいますか? - 怠け者になってください

連絡先DM - Twitter(X)
連絡先メール - sanya.san@myyahoo.com

以上がGunicorn と Nginx を使用したスケーラブルな Django アプリケーションの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。