Einführung:
Mit der weit verbreiteten Anwendung der Containerisierungstechnologie hat sich die Nachfrage nach Lastausgleich von Webdiensten allmählich zugenommen. Als effizienter Webserver und Reverse -Proxy -Server ist NGINX für viele Entwickler zum bevorzugten Tool geworden, um Lastausgleich zu erreichen. In diesem Artikel wird ausführlich erläutert, wie Sie einen NGINX -Proxy -Server konfigurieren, um die Lastausgleich von Webdiensten zwischen mehreren Docker -Containern zu erreichen.
Zunächst müssen wir die Docker -Umgebung auf dem Host installieren. Docker ist eine Open -Source -Container -Plattform, mit der Entwickler Anwendungen effizienter erstellen, veröffentlichen und ausführen können. Für bestimmte Installationsschritte finden Sie in der offiziellen Dokumentation von Docker.
Vor dem Konfigurieren eines Webdienstes müssen wir eine Dockerfile für unseren Webdienst schreiben. DockerFile ist eine Textdatei, die definiert, wie ein Docker -Bild erstellt wird. Über diese Datei können wir das verwendete grundlegende Bild, die Abhängigkeiten angeben, die installiert werden müssen, und andere verwandte Operationen.
Hier ist ein einfaches Beispiel für Dockerfile:
Von nginx Kopieren Sie nginx.conf /etc/nginx/nginx.conf Kopault.conf /etc/nginx/conf.d/default.conf Kopieren Sie HTML/usr/share/nginx/html 80 entdecken Cmd ["nginx", "-g", "Daemon off;"]
In diesem Beispiel haben wir das offizielle Nginx -Basisbild verwendet und die benutzerdefinierten Konfigurationsdateien und Webressourcen in den Container kopiert. Schließlich enthüllen wir den 80 -Port des Containers und starten den Nginx -Dienst mit dem Befehl cmd.
Nach Abschluss der Konfiguration der Docker -Umgebung besteht der nächste Schritt darin, den NGINX -Proxy -Server zu konfigurieren. Zunächst müssen wir eine neue NGINX -Konfigurationsdatei (nginx.conf) erstellen und die verwandten Konfigurationen des Lastausgleichs definieren.
Hier ist ein Beispiel für eine Nginx -Konfigurationsdatei:
Worker_Processes 1; Ereignisse { Worker_Connections 1024; } http { Upstream Backend { Server Backend1: 80; Server Backend2: 80; } Server { Hören Sie 80; Standort / { proxy_pass http: // Backend; proxy_set_header host $ host; proxy_set_header x-real-ip $ remote_addr; } } }
In dieser Konfigurationsdatei definieren wir einen vorgelagerten Backend, der die Adressen und Ports mehrerer Backend -Container enthält. Im Serverblock leiten wir dann die Anfrage über die Anweisung proxy_pass an den Backend -Dienst weiter und übergeben den Anforderungsheader mit der Anweisung proxy_set_header.
Legen Sie die Konfigurationsdatei nginx.conf und dockerfile in das gleiche Verzeichnis und verwenden Sie den folgenden Befehl, um ein Docker -Bild zu erstellen:
Docker Build -t my -nginx.
Nach Konfiguration des NGINX -Proxy -Servers müssen wir mehrere Docker -Container als Backend -Dienste starten. Zwei Container können mit dem folgenden Befehl ausgeführt werden:
Docker Run -d --Name Backend1 my -nginx Docker Run -d --Name Backend2 my -nginx
Auf diese Weise beginnt der Nginx -Dienst in beiden Containern zu laufen.
Als nächstes müssen wir einen neuen Container erstellen, um den konfigurierten NGINX -Proxy -Server auszuführen und ihn mit dem Backend -Container zu verbinden. Der Proxy -Server kann mit dem folgenden Befehl gestartet werden:
Docker Run -d -p 80:80 - -Link Backend1 - -Link Backend2 My -nginx
Zu diesem Zeitpunkt werden alle Anforderungen des Host -Port 80 vom Nginx -Proxy -Server empfangen und gemäß dem Lastausgleichsalgorithmus an den Backend -Container verteilt.
Durch die Konfiguration eines NGINX -Proxy -Servers können wir den Web -Service -Lastausgleich zwischen mehreren Docker -Containern problemlos erreichen. Dies verbessert nicht nur die Leistung und Stabilität der Anwendung, sondern verwendet auch die Serverressourcen effektiv. Hoffentlich können die in diesem Artikel bereitgestellten Schritte und Codebeispiele Ihnen helfen, NGINX besser zu konfigurieren und zu verwenden, um den Lastausgleich zu erhalten.