In der Zeit des Cloud Computing ist es sehr wichtig sicherzustellen, dass Webdienste eine hohe Verfügbarkeit und hohe Leistung aufweisen. Die elastische Skalierung ist eine effektive Lösung, um sich an Verkehrsänderungen durch dynamisch Skalierungsressourcen anzupassen. Die Kombination von Docker und Nginx bietet uns eine leistungsstarke architektonische Lösung für einfache Lastausgleich und elastische Skalierungsfunktionen von Webdiensten.
Zunächst müssen wir einen einfachen Webdienst erstellen, um zu testen. Hier verwenden wir die Frameworks node.js und express.js, um eine einfache "Hello World" -Anwendung zu erstellen. Hier ist der Code für die Anwendung:
const express = forderung ('express'); const App = express (); app.get ('/', (req, res) => { res.send ('Hallo, Welt!'); }); app.listen (3000, () => { console.log ('Server läuft auf Port 3000'); });
Als nächstes müssen wir diese Anwendung mit Docker containieren. Erstellen Sie eine Dockerfile im Stammverzeichnis des Projekts mit dem folgenden Inhalt:
# Dockerfile Vom Knoten: Alpine WorkDir /App Paket*.json ./ Führen Sie die NPM -Installation aus Kopie. . 3000 entdecken CMD ["Knoten", "App.js"]
Diese DockerFile definiert die Alpine -Version von Node.js Bild, richten Sie das Arbeitsverzeichnis ein, installieren Abhängigkeiten und führen die Anwendung node.js aus, wenn der Container startet.
Erstellen und führen Sie den Docker -Container mit dem folgenden Befehl aus:
$ Docker Build -t MyApp. $ docker run -dp 3000: 3000 myapp
Nach der Ausführung kartiert der Container 3000 Ports, wodurch die Anwendung über die IP -Adresse des Hosts zugreifen kann.
Um Lastausgleich und elastische Skalierung von Webdiensten zu erreichen, müssen wir Nginx als Reverse -Proxy -Server konfigurieren. Installieren Sie zunächst NGINX und bearbeiten Sie die Konfigurationsdatei:
$ sudo apt-Get-Update $ sudo apt-get install nginx $ sudo nano /etc/nginx/conf.d/default.conf
Fügen Sie in der NGINX -Konfigurationsdatei Folgendes hinzu:
# /etc/nginx/conf.d/default.conf Upstream app_servers { # Geben Sie hier die IP- und Portinformationen für IP- und Portinformationen des Docker -Containers aus, und es kann mehrere Server geben<CONTAINER_IP> : 3000; } Server { Hören Sie 80; Standort / { proxy_pass http: // app_servers; proxy_set_header host $ host; proxy_set_header x-real-ip $ remote_addr; } }
Hier definieren wir eine "app_servers" -Gruppe, um Docker -Container -Instanzen zu enthalten. Nginx wird Anfragen an diese Containerinstanzen proxy und erreichen so einen Lastausgleich.
Starten Sie nach dem Speichern und Verlassen der Konfigurationsdatei den Nginx -Dienst neu, um die neue Konfiguration anzuwenden:
$ sudo service nginx neu starten
Durch die Konfiguration des Lastausgleichs für NGINX wird die Ausdehnung von Behältern sehr einfach. Wenn Sie eine Containerinstanz hinzufügen müssen, müssen Sie nur eine neue Docker -Containerinstanz ausführen, und Nginx erkennt automatisch den Datenverkehr an den neuen Container.
Durch Containerisieren von Webanwendungen und das Konfigurieren eines Nginx-Proxy-Servers können wir eine hoch verfügbare Hochleistungs-elastische Skalierungsarchitektur implementieren. Die Kombination von Docker und Nginx bietet uns nicht nur eine einfache Containerlösung, sondern macht das Lastausgleich und das Verkehrsmanagement flexibler und effizienter. Ich hoffe, dieser Artikel hilft Ihnen zu verstehen, wie Sie den NGINX -Proxy -Server in Docker -Containern konfigurieren, um die elastischen Skalierungsfunktionen von Webdiensten zu verbessern.