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
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.
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.
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
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.
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!