Implementieren Sie den Nginx-Lastausgleich basierend auf Docker-Netzwerkverwaltung und Container-IP-Einstellungen Alle Docker-Netzwerke anzeigen Docker-Netzwerk ls /* NETZWERK-ID-NAME TREIBER-UMFANG b832b168ca9a Brücke Brücke lokal 373be82d3a6a composetest_default Brücke lokal a360425082c4 Host Host lokal 154f600f0e90 keine null lokal */ // composetest_default ist der Verzeichnisname, in dem sich die Datei docker-compose.yml bei der Einführung von Compose im vorherigen Artikel befindet. // Daher erstellt der mit Docker-Compose erstellte Container standardmäßig ein Netzwerk mit dem Verzeichnisnamen als Netzwerknamen und ist vom Typ Dridge (Bridge). Angeben der Container-IP-Adresse Offizielle Website-Dokumentadresse: https://docs.docker.com/compose/compose-file/#ipv4_address-ipv6_address Fahren Sie mit dem Schreiben der Datei docker-compose.yml aus dem vorherigen Artikel „12. Verwenden des Docker Compose Container Orchestration Tools“ fort. Version: "3" Leistungen: web1: Containername: web1 Bild: "centos:httpd" Häfen: - „8080:80“ privilegiert: wahr Bände: - "/app/www/web1/:/var/www/html/" Befehl: ['/usr/sbin/init'] Netzwerke: nginx-lsb: IPv4-Adresse: 192.169.0.3 web2: Containername: web2 Bild: "centos:httpd" Häfen: - „8081:80“ privilegiert: wahr Bände: - "/app/www/web2/:/var/www/html/" Befehl: ['/usr/sbin/init'] Netzwerke: nginx-lsb: IPv4-Adresse: 192.169.0.2 Netzwerke: nginx-lsb: Treiber: Brücke ipam: Konfiguration: - Subnetz: 192.169.0.0/16 Starten Sie den Container mit Docker-Compose docker-compose up -d Überprüfen Sie, ob der Container gestartet ist und ob das Netzwerk nginx-lsb erstellt wurde // Sie können den Containerstatus in der Containergruppe anzeigen, die durch die aktuelle Datei docker-compose.yml konfiguriert wurde docker-compose ps Docker-Netzwerk ls /* NETZWERK-ID-NAME TREIBER-UMFANG b832b168ca9a Brücke Brücke lokal 373be82d3a6a composetest_default Brücke lokal de6f5b8df1c8 composetest_nginx-lsb Brücke lokal a360425082c4 Host Host lokal 154f600f0e90 keine null lokal */ // Erstellt das nginx-lsb-Netzwerk, benannt nach dem Anfang der Containergruppe Projektdateiname_Netzwerkname Netzwerk-nginx-lsb-Details anzeigen Docker-Netzwerk überprüfen Composetest_nginx-lsb // In den Details können Sie die IP-Adresse jedes Containers sehen, der dieses Netzwerk verwendet. wie: /* ... "Container": { "039aa860ef04f20a7566fdc943fb4398a61d2ad6dd3e373b17c86ac778af89e3": { "Name": "web2", "EndpointID": "1bc206661179e65999015f132c2889d3d4365b8d42b8a89cf9c260016fedd5ee", "MacAdresse": "02:42:c0:a9:00:02", "IPv4Adresse": "192.169.0.2/16", "IPv6Adresse": "" }, "437ad7a07da8e46c0abaf845c4b08425338009fbe972bde69478cf47c75c315b": { "Name": "web1", "EndpointID": "5a36e602a5364ee9ad06e9816d09e3966d56ebf06b9394ebc25b8bcee9546607", "MacAdresse": "02:42:c0:a9:00:03", "IPv4Adresse": "192.169.0.3/16", "IPv6Adresse": "" } }, ... */ Verwenden Sie die Umgebungsdatei env_file: Es kann einfach so verstanden werden: Definieren Sie Variablen in docker-compose.yml und referenzieren Sie sie in externen .env-Dateien Offizielle Dokumentationsadresse: https://docs.docker.com/compose/compose-file/#env_file // Oder definieren Sie eine .env-Datei im Verzeichnis „composetest“, um die Variable „web1_addr=192.169.0.2“ zu speichern. web2_addr=192.169.0.3 //Ändern Sie die Datei docker-compose.yml und fügen Sie die Variablendefinitionsversion hinzu: „3“ Leistungen: web1: Containername: web1 Bild: "centos:httpd" Häfen: - „8080:80“ privilegiert: wahr Bände: - "/app/www/web1/:/var/www/html/" Befehl: ['/usr/sbin/init'] Netzwerke: nginx-lsb: IPv4-Adresse: ${web1_addr} web2: Containername: web2 Bild: "centos:httpd" Häfen: - „8081:80“ privilegiert: wahr Bände: - "/app/www/web2/:/var/www/html/" Befehl: ['/usr/sbin/init'] Netzwerke: nginx-lsb: IPv4-Adresse: ${web2_addr} Netzwerke: nginx-lsb: Treiber: Brücke ipam: Konfiguration: - Subnetz: 192.169.0.0/16 Starten Sie das Composetest-Projekt neu und überprüfen Sie die Netzwerkdetails, um zu bestätigen, ob die Container-IP erfolgreich festgelegt wurde // Starten Sie das Composetest-Projekt neu docker-compose up -d // Netzwerkdetails anzeigen Docker-Netzwerk überprüfen Composetest_nginx-lsb Fügen Sie im Composetest-Projekt einen Nginx-Server als Lastenausgleichsserver hinzu // Fügen Sie der .env-Datei eine Variable nginx_lsb hinzu web1_addr=192.169.0.2 web2_addr=192.169.0.3 nginx_lsb=192.169.0.100 //Ändern Sie die Datei docker-compose.yml und fügen Sie die Variablendefinitionsversion hinzu: „3“ Leistungen: nginx-lsb: Containername: nginx-lsb Bild: „centos:nginx“ Häfen: - "8000:80" privilegiert: wahr Bände: – „/app/nginx/nginx.conf:/etc/nginx/nginx.conf“ Netzwerke: nginx-lsb: IPv4-Adresse: ${nginx_lsb} web1: Containername: web1 Bild: "centos:httpd" Häfen: - „8080:80“ privilegiert: wahr Bände: - "/app/www/web1/:/var/www/html/" Befehl: ['/usr/sbin/init'] Netzwerke: nginx-lsb: IPv4-Adresse: ${web1_addr} web2: Containername: web2 Bild: "centos:httpd" Häfen: - „8081:80“ privilegiert: wahr Bände: - "/app/www/web2/:/var/www/html/" Befehl: ['/usr/sbin/init'] Netzwerke: nginx-lsb: IPv4-Adresse: ${web2_addr} Netzwerke: nginx-lsb: Treiber: Brücke ipam: Konfiguration: - Subnetz: 192.169.0.0/16 // Starten Sie das Composetest-Projekt neu docker-compose up -d Ändern Sie die Konfigurationsdatei nginx.conf und konfigurieren Sie den Lastenausgleich upstream meinDocker { Server 192.169.0.2; Server 192.169.0.3; } Server { hören Sie 80; Servername mydocker; Standort / { Proxy_Set_Header Host $host; Proxy_Set_Header X-Real-IP $Remote_Addr; proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for; Proxy-Pufferung aus; Proxy-Passwort http://mydocker; } } Starten Sie nginx-lsb neu und laden Sie die Konfigurationsdatei Docker-Composer startet Nginx-LSB neu Besuchen Sie http://Server-IP-Adresse:8000, um den Server-Lastausgleich zu testen! Hinweis: Im vorherigen Artikel wurden verschiedene Webdateien auf zwei httpd-Servern abgelegt. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: JavaScript zum Erzielen eines Taobao-Produktbild-Umschalteffekts
>>: Detaillierte Erklärung des Ausführungskontexts und des Aufrufstapels in JavaScript
Die JSON-Daten müssen im HTML-Format zurückgegeben...
Der Unterschied zwischen relativ und absolut in H...
Openlayers ist ein modulares, leistungsstarkes un...
mysql-5.7.20-winx64.zipInstallationspaket ohne In...
Inhaltsverzeichnis Hintergrund Funktion Zweck Ide...
Inhaltsverzeichnis Vorwort Anwendungsszenarios fü...
Ich habe vor Kurzem in einer neuen Firma angefang...
Umsetzungsideen Ganz außen ist ein großer Kreis (...
[Verwendung und Funktion des MySQL-Cursors] Beisp...
MyISAM und InnoDB sind die gängigsten Speicher-En...
In Unternehmen hat die hohe Verfügbarkeit von Dat...
Das Hinzufügen/Entfernen von Klassen zu Elementen...
Der Zweck des Schreibens von Skripten besteht dar...
Inhaltsverzeichnis Vorwort Lösung: Schritt 1 Schr...
In diesem Artikel wird das MySQL 5.7.18 MSI-Insta...