リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法
はじめに:
FastAPI と Nginx は、2 つの非常に人気のある Web 開発ツールです。 FastAPI は高性能 Python フレームワークであり、Nginx は強力なリバース プロキシ サーバーです。これら 2 つのツールを一緒に使用すると、Web アプリケーションのパフォーマンスと信頼性が向上します。この記事では、リバース プロキシと負荷分散のために FastAPI で Nginx を使用する方法を学びます。
- リバース プロキシとロード バランシングとは何ですか?
リバース プロキシは、クライアント要求を内部ネットワーク リソースに転送するために使用されるネットワーク サービスです。フォワード プロキシとは異なり、リバース プロキシ サーバーはバックエンド サーバーの詳細を隠し、クライアントはバックエンド サーバーに直接アクセスできません。リバース プロキシ サーバーは、特定のルールに従ってクライアント要求をバックエンド サーバーに転送することで、セキュリティと負荷分散を実現します。
負荷分散は、リクエストを複数のサーバーに分散してシステムのパフォーマンスと信頼性を向上させるテクノロジーです。 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
- 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 でリッスンしています。
- リバース プロキシとロード バランシングのテスト
「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 サイトの他の関連記事を参照してください。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。
