リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法

WBOY
リリース: 2023-08-01 09:44:00
オリジナル
2107 人が閲覧しました

リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法

はじめに:
FastAPI と Nginx は、2 つの非常に人気のある Web 開発ツールです。 FastAPI は高性能 Python フレームワークであり、Nginx は強力なリバース プロキシ サーバーです。これら 2 つのツールを一緒に使用すると、Web アプリケーションのパフォーマンスと信頼性が向上します。この記事では、リバース プロキシと負荷分散のために FastAPI で Nginx を使用する方法を学びます。

  1. リバース プロキシとロード バランシングとは何ですか?
    リバース プロキシは、クライアント要求を内部ネットワーク リソースに転送するために使用されるネットワーク サービスです。フォワード プロキシとは異なり、リバース プロキシ サーバーはバックエンド サーバーの詳細を隠し、クライアントはバックエンド サーバーに直接アクセスできません。リバース プロキシ サーバーは、特定のルールに従ってクライアント要求をバックエンド サーバーに転送することで、セキュリティと負荷分散を実現します。

負荷分散は、リクエストを複数のサーバーに分散してシステムのパフォーマンスと信頼性を向上させるテクノロジーです。 1 つのサーバーですべてのリクエストを処理できない場合、負荷分散により他の利用可能なサーバーにリクエストが分散され、サーバー間の負荷が分散されます。

  1. Nginx リバース プロキシとロード バランシングの構成
    まず、Nginx サーバーをインストールして構成する必要があります。 Ubuntu では、次のコマンドを使用してインストールできます:
sudo apt update
sudo apt install nginx
ログイン後にコピー

インストールが完了したら、Nginx 構成ファイルを変更する必要があります。次のコマンドを使用して Nginx 構成ファイルを開きます:

sudo nano /etc/nginx/sites-available/default
ログイン後にコピー

構成ファイルでは、次の構成を追加する必要があります:

upstream backend {
    server 127.0.0.1:8000;
    server 127.0.0.1:8001;
}

server {
    listen 80;

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
ログイン後にコピー

上記の構成では、「backend」という名前のアップストリームを定義します。サーバークラスター。クラスター内には 2 つのサーバーがあり、それぞれポート 8000 と 8001 で待機しています。次に、ポート 80 でリッスンし、「バックエンド」クラスター内のサーバーにリクエストを転送するサーバー ブロックを定義しました。最後に、プロキシ リクエストのヘッダーをいくつか設定します。

設定ファイルを保存して終了した後、Nginx サーバーを再起動します。

sudo systemctl restart nginx
ログイン後にコピー
  1. FastAPI を使用してバックエンド アプリケーションを作成する
    次に、FastAPI を使用して単純なバックエンド アプリケーションを作成します。アプリケーションを終了します。まず、FastAPI と uvicorn がインストールされていることを確認します。次のコマンドを使用してインストールできます。
pip install fastapi uvicorn
ログイン後にコピー

次に、「main.py」という名前のファイルを作成し、次のコードを追加します。

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}
ログイン後にコピー

ファイルを保存した後、次のコマンド FastAPI アプリケーションを開始します:

uvicorn main:app --reload
ログイン後にコピー

現在、FastAPI アプリケーションはローカル ポート 8000 でリッスンしています。

  1. リバース プロキシとロード バランシングのテスト
    「http://localhost」にアクセスすると、Nginx がリクエストを FastAPI アプリケーションに転送し、「Hello World」のレスポンスを返すことがわかります。

負荷分散をテストするには、「main.py」ファイルをコピーし、別のポートで FastAPI アプリケーションを起動します。たとえば、「main.py」を「main2.py」としてコピーし、ポート 8001 でアプリケーションを起動します。

次に、次のコマンドを使用して 2 番目の FastAPI アプリケーションを開始します:

uvicorn main2:app --port 8001 --reload
ログイン後にコピー

この時点で、Nginx は負荷分散を設定しており、リクエストは 2 つの FastAPI アプリケーションに分散されます。

結論:
FastAPI と Nginx を組み合わせることで、リバース プロキシ機能や負荷分散機能を実装でき、Web アプリケーションのパフォーマンスと信頼性を向上させることができます。 Nginx のリバース プロキシ機能を使用すると、バックエンド サーバーの詳細を隠し、セキュリティを提供できます。負荷分散機能により、複数のサーバー間で負荷を分散し、システムのパフォーマンスと信頼性を向上させることができます。この記事が、FastAPI でのリバース プロキシとロード バランシングに Nginx を使用する方法を学ぶのに役立つことを願っています。

以上がリバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート