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

Aug 01, 2023 am 09:44 AM
nginx 负载均衡 反向代理 fastapi

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

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
Nach dem Login kopieren
  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
Nach dem Login kopieren

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 Login kopieren

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

uvicorn main:app --reload
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So generieren Sie eine URL aus einer HTML-Datei So generieren Sie eine URL aus einer HTML-Datei Apr 21, 2024 pm 12:57 PM

Für die Konvertierung einer HTML-Datei in eine URL ist ein Webserver erforderlich. Dazu sind die folgenden Schritte erforderlich: Besorgen Sie sich einen Webserver. Richten Sie einen Webserver ein. Laden Sie eine HTML-Datei hoch. Erstellen Sie einen Domainnamen. Leiten Sie die Anfrage weiter.

Anwendung der Lastausgleichsstrategie bei der Leistungsoptimierung des Java-Frameworks Anwendung der Lastausgleichsstrategie bei der Leistungsoptimierung des Java-Frameworks May 31, 2024 pm 08:02 PM

Lastausgleichsstrategien sind in Java-Frameworks für eine effiziente Verteilung von Anforderungen von entscheidender Bedeutung. Abhängig von der Parallelitätssituation weisen verschiedene Strategien unterschiedliche Leistungen auf: Abfragemethode: Stabile Leistung bei geringer Parallelität. Gewichtete Abfragemethode: Die Leistung ähnelt der Abfragemethode bei geringer Parallelität. Methode mit der geringsten Anzahl von Verbindungen: beste Leistung bei hoher Parallelität. Zufallsmethode: einfach, aber schlechte Leistung. Konsistentes Hashing: Serverlast ausgleichen. In Kombination mit praktischen Fällen erklärt dieser Artikel, wie Sie auf der Grundlage von Leistungsdaten geeignete Strategien auswählen, um die Anwendungsleistung deutlich zu verbessern.

So stellen Sie eine Website mit PHP bereit und pflegen sie So stellen Sie eine Website mit PHP bereit und pflegen sie May 03, 2024 am 08:54 AM

Um eine PHP-Website erfolgreich bereitzustellen und zu warten, müssen Sie die folgenden Schritte ausführen: Wählen Sie einen Webserver (z. B. Apache oder Nginx). Installieren Sie PHP. Erstellen Sie eine Datenbank und verbinden Sie PHP. Laden Sie Code auf den Server hoch. Richten Sie den Domänennamen und die DNS-Überwachung der Website-Wartung ein Zu den Schritten gehören die Aktualisierung von PHP und Webservern sowie die Sicherung der Website, die Überwachung von Fehlerprotokollen und die Aktualisierung von Inhalten.

So schützen Sie Ihren Server mit Fail2Ban vor Brute-Force-Angriffen So schützen Sie Ihren Server mit Fail2Ban vor Brute-Force-Angriffen Apr 27, 2024 am 08:34 AM

Eine wichtige Aufgabe für Linux-Administratoren besteht darin, den Server vor illegalen Angriffen oder Zugriffen zu schützen. Linux-Systeme verfügen standardmäßig über gut konfigurierte Firewalls wie iptables, Uncomplicated Firewall (UFW), ConfigServerSecurityFirewall (CSF) usw., die eine Vielzahl von Angriffen verhindern können. Jeder mit dem Internet verbundene Computer ist ein potenzielles Ziel für böswillige Angriffe. Es gibt ein Tool namens Fail2Ban, mit dem illegale Zugriffe auf den Server eingedämmt werden können. Was ist Fail2Ban? Fail2Ban[1] ist eine Intrusion-Prevention-Software, die Server vor Brute-Force-Angriffen schützt. Es ist in der Programmiersprache Python geschrieben

Kommen Sie mit, um Linux zu lernen und Nginx zu installieren Kommen Sie mit, um Linux zu lernen und Nginx zu installieren Apr 28, 2024 pm 03:10 PM

Heute werde ich Sie durch die Installation von Nginx in einer Linux-Umgebung führen. Das hier verwendete Linux-System ist CentOS7.2. Bereiten Sie die Installationstools vor. 1. Laden Sie Nginx von der offiziellen Nginx-Website herunter. Die hier verwendete Version ist: 1.13.6.2. Laden Sie das heruntergeladene Nginx auf Linux hoch. Hier wird das Verzeichnis /opt/nginx verwendet. Führen Sie zum Dekomprimieren „tar-zxvfnginx-1.13.6.tar.gz“ aus. 3. Wechseln Sie in das Verzeichnis /opt/nginx/nginx-1.13.6 und führen Sie ./configure für die Erstkonfiguration aus. Wenn die folgende Eingabeaufforderung erscheint, bedeutet dies, dass PCRE nicht auf dem Computer installiert ist und Nginx dies tun muss

Beim Aufbau einer Hochverfügbarkeit mit keepalived+nginx sind einige Punkte zu beachten Beim Aufbau einer Hochverfügbarkeit mit keepalived+nginx sind einige Punkte zu beachten Apr 23, 2024 pm 05:50 PM

Nachdem yum Keepalived installiert hat, konfigurieren Sie die Keepalived-Konfigurationsdatei. In den Keepalived-Konfigurationsdateien ist der Netzwerkkartenname des aktuellen VIP normalerweise als verfügbare IP ausgewählt. Es gibt viele LAN-Umgebungen, daher ist diese VIP eine Intranet-IP im selben Netzwerksegment wie die beiden Maschinen. Bei der Verwendung in einer externen Netzwerkumgebung spielt es keine Rolle, ob es sich im selben Netzwerksegment befindet, solange der Client darauf zugreifen kann. Stoppen Sie den Nginx-Dienst und starten Sie den Keepalived-Dienst. Wenn er nicht gestartet werden kann und fehlschlägt, liegt im Grunde ein Problem mit den Konfigurationsdateien und Skripten oder ein Präventionsproblem vor.

So implementieren Sie Best Practices für die PHP-Sicherheit So implementieren Sie Best Practices für die PHP-Sicherheit May 05, 2024 am 10:51 AM

So implementieren Sie Best Practices für die PHP-Sicherheit PHP ist eine der beliebtesten Backend-Webprogrammiersprachen, die zum Erstellen dynamischer und interaktiver Websites verwendet wird. Allerdings kann PHP-Code verschiedene Sicherheitslücken aufweisen. Um Ihre Webanwendungen vor diesen Bedrohungen zu schützen, ist die Implementierung bewährter Sicherheitspraktiken von entscheidender Bedeutung. Eingabevalidierung Die Eingabevalidierung ist ein wichtiger erster Schritt zur Validierung von Benutzereingaben und zur Verhinderung böswilliger Eingaben wie SQL-Injection. PHP bietet eine Vielzahl von Eingabevalidierungsfunktionen, wie zum Beispiel filter_var() und preg_match(). Beispiel: $username=filter_var($_POST['username'],FILTER_SANIT

Der Zugriff auf WordPress -Site -Datei ist eingeschränkt: Warum ist meine .txt -Datei nicht über den Domänennamen zugegriffen? Der Zugriff auf WordPress -Site -Datei ist eingeschränkt: Warum ist meine .txt -Datei nicht über den Domänennamen zugegriffen? Apr 01, 2025 pm 03:00 PM

Der Zugriff auf WordPress -Site -Datei ist eingeschränkt: Fehlerbehebung Der Grund, warum auf die TXT -Datei in letzter Zeit nicht zugegriffen werden kann. Einige Benutzer haben ein Problem beim Konfigurieren des MINI -Programms Business Domain Name: � ...

See all articles