Heim >Backend-Entwicklung >Python-Tutorial >So verwenden Sie Nginx mit FastAPI für Reverse-Proxy und Lastausgleich

So verwenden Sie Nginx mit FastAPI für Reverse-Proxy und Lastausgleich

WBOY
WBOYOriginal
2023-08-01 09:44:002115Durchsuche

So verwenden Sie Nginx mit FastAPI für Reverse-Proxy und Lastausgleich

Einführung:
FastAPI und Nginx sind zwei sehr beliebte Webentwicklungstools. FastAPI ist ein leistungsstarkes Python-Framework und Nginx ist ein leistungsstarker Reverse-Proxy-Server. Die gemeinsame Verwendung dieser beiden Tools kann die Leistung und Zuverlässigkeit Ihrer Webanwendungen verbessern. In diesem Artikel erfahren Sie, wie Sie Nginx mit FastAPI für Reverse-Proxy und Lastausgleich verwenden.

  1. Was ist Reverse Proxy und Load Balancing?
    Ein Reverse-Proxy ist ein Netzwerkdienst, der zur Weiterleitung von Client-Anfragen an interne Netzwerkressourcen verwendet wird. Im Gegensatz zum Forward-Proxy verbirgt der Reverse-Proxy-Server die Details des Back-End-Servers und der Client kann nicht direkt auf den Back-End-Server zugreifen. Der Reverse-Proxy-Server leitet Client-Anfragen nach bestimmten Regeln an den Backend-Server weiter und sorgt so für Sicherheit und Lastausgleich.

Load Balancing ist eine Technologie, die Anfragen an mehrere Server verteilt, um die Systemleistung und -zuverlässigkeit zu verbessern. Wenn ein Server nicht alle Anfragen verarbeiten kann, verteilt der Lastausgleich die Anfragen auf andere verfügbare Server und verteilt so die Last zwischen den Servern.

  1. Nginx-Reverse-Proxy und Lastausgleich konfigurieren
    Zuerst müssen wir den Nginx-Server installieren und konfigurieren. Unter Ubuntu können Sie zur Installation den folgenden Befehl verwenden:
sudo apt update
sudo apt install nginx

Nachdem die Installation abgeschlossen ist, müssen wir die Nginx-Konfigurationsdatei ändern. Öffnen Sie die Nginx-Konfigurationsdatei mit dem folgenden Befehl:

sudo nano /etc/nginx/sites-available/default

In der Konfigurationsdatei müssen wir die folgende Konfiguration hinzufügen:

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;
    }
}

In der obigen Konfiguration haben wir einen Upstream-Servercluster mit dem Namen „backend“ definiert. Es gibt zwei Server im Cluster, die jeweils die Ports 8000 und 8001 überwachen. Anschließend haben wir einen Serverblock definiert, der auf Port 80 lauscht und Anfragen an Server im „Backend“-Cluster weiterleitet. Abschließend legen wir einige Header für die Proxy-Anfrage fest.

Nachdem Sie die Konfigurationsdatei gespeichert und beendet haben, starten Sie den Nginx-Server neu:

sudo systemctl restart nginx
  1. Erstellen einer Backend-Anwendung mit FastAPI
    Als nächstes erstellen wir eine einfache Backend-Anwendung mit FastAPI. Stellen Sie zunächst sicher, dass FastAPI und uvicorn installiert sind. Es kann mit dem folgenden Befehl installiert werden:
pip install fastapi uvicorn

Erstellen Sie dann eine Datei mit dem Namen „main.py“ und fügen Sie den folgenden Code hinzu:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

Nach dem Speichern der Datei starten Sie die FastAPI-Anwendung mit dem folgenden Befehl:

uvicorn main:app --reload

Jetzt überwacht unsere FastAPI-Anwendung den lokalen Port 8000.

  1. Reverse-Proxy und Lastausgleich testen
    Durch den Zugriff auf „http://localhost“ können wir sehen, dass Nginx die Anfrage an die FastAPI-Anwendung weiterleitet und eine „Hello World“-Antwort zurückgibt.

Um den Lastausgleich zu testen, können wir die Datei „main.py“ kopieren und die FastAPI-Anwendung auf einem anderen Port starten. Kopieren Sie beispielsweise „main.py“ nach „main2.py“ und starten Sie die Anwendung auf Port 8001.

Dann verwenden Sie den folgenden Befehl, um die zweite FastAPI-Anwendung zu starten:

uvicorn main2:app --port 8001 --reload

Zu diesem Zeitpunkt hat Nginx den Lastausgleich eingerichtet und Anfragen werden auf die beiden FastAPI-Anwendungen verteilt.

Fazit:
Durch die Kombination von FastAPI und Nginx können wir Reverse-Proxy- und Lastausgleichsfunktionen implementieren, um die Leistung und Zuverlässigkeit von Webanwendungen zu verbessern. Mit der Reverse-Proxy-Funktion von Nginx können wir die Details des Backend-Servers verbergen und für Sicherheit sorgen. Durch die Lastausgleichsfunktion können wir die Last auf mehrere Server verteilen, um die Systemleistung und -zuverlässigkeit zu verbessern. Ich hoffe, dieser Artikel kann Ihnen dabei helfen, zu lernen, wie Sie Nginx für Reverse-Proxy und Lastausgleich in FastAPI verwenden.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Nginx mit FastAPI für Reverse-Proxy und Lastausgleich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn