Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie NGINX, um Webserver -Lastausgleich in Docker zu erreichen

So verwenden Sie NGINX, um Webserver -Lastausgleich in Docker zu erreichen

M66 2025-06-21

So verwenden Sie NGINX, um Webserver -Lastausgleich in Docker zu erreichen

In modernen Webanwendungsarchitekturen ist Lastausgleich ein wichtiges Mittel zur Verbesserung der Verfügbarkeit, Leistung und Skalierbarkeit von Systemen. Durch die Verteilung des Verkehrs auf mehrere Webserver kann er den Druck effektiv verteilen und sicherstellen, dass die Website weiterhin stabil unter hohen Besuchen arbeiten kann. In diesem Artikel wird detailliert eingeführt, wie Sie NGINX -Proxy -Server verwenden, um das Ladeausgleich mehrerer Webserver in einer Docker -Umgebung zu konfigurieren.

Vorbereitung

Zuerst müssen wir Docker und Nginx installieren. Informationen zu Installationsmethoden finden Sie in den offiziellen Dokumenten von Docker und Nginx und wählen Sie die entsprechenden Installationsschritte gemäß Ihrem Betriebssystem.

Erstellen Sie mehrere Webserverinstanzen

Vor der Implementierung des Lastausgleichs müssen Sie zunächst mehrere Webserverinstanzen erstellen. Wir werden Docker verwenden, um mehrere Webserver bereitzustellen. Hier ist eine einfache Dockerfile zum Erstellen von Webserverbildern.

Von Nginx: Neueste
Kopieren index.html/usr/share/nginx/html/
Kopieren Sie nginx.conf /etc/nginx/nginx.conf
80 entdecken

In dieser DockerFile erstellen wir ein Webserverbild basierend auf dem offiziellen Nginx -Bild und kopieren die Dateien index.html und nginx.conf in den Container. Der Webseiteninhalt, den Sie anzeigen müssen, kann in index.html platziert werden. nginx.conf wird verwendet, um die relevanten Einstellungen des Nginx -Dienstes zu konfigurieren.

Konfigurieren Sie den NGINX -Proxy -Server

Als nächstes müssen wir einen Nginx -Proxy -Server konfigurieren, um einen Lastausgleich zu erreichen. Erstellen Sie eine Konfigurationsdatei mit dem Namen nginx.conf und fügen Sie Folgendes hinzu:

http {
  Upstream Backend {
    Server Web1: 80;
    Server Web2: 80;
  }

  Server {
    Hören Sie 80;

    Standort / {
      proxy_pass http: // Backend;
      proxy_set_header host $ host;
    }
  }
}

In dieser Konfiguration definieren wir eine Upstream -Servergruppe namens Backend, die zwei Webserver (Web1 und Web2) enthält. Im Serverblock binden wir den 80 -Port des Nginx -Proxy -Servers und leiten den Datenverkehr über die Proxy_Pass -Anweisung an die Backend -Gruppe weiter. Proxy_set_header wird verwendet, um sicherzustellen, dass der angeforderte Host -Header korrekt übergeben wird.

Starten Sie den Webserver und den NGINX -Proxy -Server

Nach Abschluss der NGINX -Konfiguration können wir den Webserver und den NGINX -Proxy -Server über Docker starten. Erstellen Sie zuerst ein Webserverbild und führen Sie den folgenden Befehl aus:

Docker Build -t -Webserver.

Führen Sie dann mehrere Webserverinstanzen aus. Sie können zwei Webserver starten, indem Sie den folgenden Befehl ausführen:

Docker Run -d --Name Web1 -Webserver
Docker Run -d --Name Web2 Webserver

Starten Sie anschließend die NGINX -Proxy -Serverinstanz und führen Sie den folgenden Befehl aus:

Docker run -d -p 80:80 --Name nginx -proxy - -link web1 - -link web2 nginx

Hier verbindet der Parameter -Link den Nginx -Proxy -Server mit zwei Webserverinstanzen. Auf diese Weise kann NGINX den Datenverkehr gleichmäßig an den Webserver verteilen.

Testlastausgleich

Jetzt können Sie über Ihren Browser auf die IP -Adresse oder den Domänennamen des NGINX -Proxy -Servers zugreifen, um die Lastausgleichsfunktion zu testen. Jede Anforderung wird vom NGINX -Proxy -Server an eine andere Webserverinstanz weitergeleitet, wobei die Last geteilt wird.

Sie können auch die Protokolle des Webserver -Containers überprüfen, um zu bestätigen, ob die Anforderungen gleichmäßig auf mehrere Instanzen zugeordnet sind:

Docker Protokolle Web1
Docker Protokolle Web2

abschließend

Durch die Kombination von Docker- und Nginx -Proxy -Servern können wir problemlos mehrere Webserver ausbalancieren. Diese Methode ist nicht nur einfach zu bedienen, sondern hat auch eine hohe Flexibilität und Skalierbarkeit, die den Anforderungen der meisten Webanwendungen entsprechen kann. Ich hoffe, der Inhalt dieses Artikels wird Ihnen hilfreich sein!