Docker Nginx-Container und Tomcat-Container zur Realisierung von Lastausgleich und dynamischen und statischen Trennungsvorgängen

Docker Nginx-Container und Tomcat-Container zur Realisierung von Lastausgleich und dynamischen und statischen Trennungsvorgängen

Tomcat8-Image herunterladen

[root@localhost ~]# Docker-Suche Tomcat8
NAME BESCHREIBUNG STERNE OFFIZIELL AUTOMATISIERT
ashince/tomcat8 Tomcat GUI Manager vorkonfiguriertes Docker-Image… 5                    
podbox/tomcat8 2 [OK]
 
 

Dieser Tomcat enthält JDK und kann direkt nach dem Start aufgerufen werden. Er startet Port 8080 von selbst.

[root@localhost ~]# docker pull ashince/tomcat8
Standard-Tag verwenden: latest
aktuell: Abrufen von ashince/tomcat8
06b22ddb1913: FS-Schicht ziehen 
336c28b408ed: Ziehen abgeschlossen 
1f3e6b8d80c3: Ziehen abgeschlossen 
[root@localhost ~]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
nginx latest 2622e6cca7eb vor 2 Wochen 132MB
ashince/tomcat8 latest 02aedead27dd vor 22 Monaten 314MB
Starten Sie einen Nginx-Container und zwei Tomcat-Container [root@localhost ~]# docker run -itd -p 8080:8080 ashince/tomcat8 
3e3f2aabe67de7ee3f4b6d62176e21aaa9d2302922845cb08ad37af7146b13c5
[root@localhost ~]# docker run -itd -p 8081:8080 ashince/tomcat8 
644d59711c805a626b7c1c219aa018f744098a14dd41e54744d6b13e7ba66a2f
[root@localhost ~]# docker ps
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
cca55c4ad919 ashince/tomcat8 "catalina.sh run" Vor etwa einer Minute Aktiv Vor etwa einer Minute 0.0.0.0:8081->8080/tcp unruffled_lalande
08b58d2f41d6 ashince/tomcat8 "catalina.sh run" vor 7 Minuten Vor 7 Minuten 0.0.0.0:8080->8080/tcp relaxed_williamson
aeebcb0b40a2 nginx "/docker-entrypoint.…" vor 2 Stunden Up 2 Stunden 0.0.0.0:80->80/tcp priceless_ardinghelli 

#Kopieren Sie die Konfiguration im Nginx-Container zur Änderung auf den lokalen Computer, da im Container kein Vim-Befehl vorhanden ist [root@localhost ~]# docker cp 68d2bdf336ed:/etc/nginx/conf.d/default.conf .
[root@localhost ~]# ls
anaconda-ks.cfg default.conf index.html
[root@localhost ~]# grep -vE "#|^$" default.conf 
Server {
  hören Sie 80;
  hören [::]:80;
  Servername localhost;
  Standort / {
    root /usr/share/nginx/html;
    Index Index.html Index.htm;
  }
  Fehlerseite 500 502 503 504 /50x.html;
  Standort = /50x.html {
    root /usr/share/nginx/html;
  }
}
 
#IP-Adressen von zwei Tomcats [root@localhost ~]# for i in {72e174adc77d,080068dae40a};do docker inspect $i| grep -i ipaddr |tail -n 1;done
          "IP-Adresse": "172.17.0.4",
          "IP-Adresse": "172.17.0.3",
Kopieren Sie statische Ressourcen zur dynamischen und statischen Trennung in das Nginx-Verzeichnis und ändern Sie gleichzeitig die Konfigurationsdatei. #Kopieren Sie das ROOT-Verzeichnis eines der Tomcats auf den lokalen Computer, da Nginx zur dynamischen und statischen Trennung lokal auf statische Ressourcen zugreifen muss. [root@localhost ~]# docker cp 72e174adc77d:/usr/local/tomcat/webapps/ROOT .
 
#In das Nginx-Release-Verzeichnis kopieren [root@localhost ~]# docker cp ROOT 68d2bdf336ed:/usr/share/nginx/html/
[root@localhost WEB-INF]# docker exec 68d2bdf336ed ls -l /usr/share/nginx/html/ROOT
insgesamt 184
-rwxrwxrwx 1 root root 7064 21. Juni 2017 RELEASE-NOTES.txt
drwxrwxrwx 2 root root 21 27. Juli 2017 WEB-INF
-rwxrwxrwx 1 root root 26447 21. Juni 2017 asf-logo-wide.svg
-rwxrwxrwx 1 root root 713 21. Juni 2017 bg-button.png
-rwxrwxrwx 1 Wurzel Wurzel 1918 21. Juni 2017 bg-middle.png
-rwxrwxrwx 1 root root 1392 21. Juni 2017 bg-nav-item.png
-rwxrwxrwx 1 root root 1401 21. Juni 2017 bg-nav.png
-rwxrwxrwx 1 root root 3103 21. Juni 2017 bg-upper.png
-rwxrwxrwx 1 root root 21630 21. Juni 2017 favicon.ico
-rwxrwxrwx 1 root root 12279 21. Juni 2017 index.jsp
-rwxrwxrwx 1 root root 2376 21. Juni 2017 tomcat-power.gif
-rwxrwxrwx 1 root root 5581 21. Juni 2017 tomcat.css
-rwxrwxrwx 1 root root 2066 21. Juni 2017 tomcat.gif
-rwxrwxrwx 1 root root 5103 21. Juni 2017 tomcat.png
-rwxrwxrwx 1 root root 67795 21. Juni 2017 tomcat.svg
 
#Die geänderte Nginx-Konfigurationsdatei lautet wie folgt. Nach der Änderung wird sie in den Container [root@localhost ~] kopiert. # docker cp default.conf 68d2bdf336ed:/etc/nginx/conf.d/default.conf 
[root@localhost ~]# docker exec 68d2bdf336ed cat /etc/nginx/conf.d/default.conf 
Upstream tomcat_web{
Server 172.17.0.3:8080 Gewicht=100 max_fails=2 fail_timeout=15;
Server 172.17.0.4:8080 Gewicht=100 max_fails=2 fail_timeout=15;
}
 
Server {
  hören Sie 80;
  hören [::]:80;
  Servername localhost;
  Fehlerseite 500 502 503 504 /50x.html;
  root /usr/share/nginx/html; 
  Standort /{
  Proxy-Passwort http://tomcat_web;
  Proxy_Set_Header-Host $host;
  } 
  
  Standort ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
   root /usr/share/nginx/html/ROOT;
   läuft in 30 Tagen ab;
   Zugriff_Abmeldung;
  }
  
  Standort ~ .*\.(eot|ttf|otf|woff|svg)$ {
   root /usr/share/nginx/html/ROOT;
   läuft in 30 Tagen ab;
   Zugriff_Abmeldung;
  }
  
  Standort ~ .*\.(js|css)$ {
   root /usr/share/nginx/html/ROOT;
   läuft in 30 Tagen ab;
   Zugriff_Abmeldung;
  }
  Standort = /50x.html {
    root /usr/share/nginx/html;
  }
}
 
#Neue Konfigurationselemente laden [root@localhost ~]# docker exec -it 68d2bdf336ed /bin/bash
root@68d2bdf336ed:/# /usr/sbin/nginx -s neu laden
2020/06/29 07:12:05 [Hinweis] 79#79: Signalprozess gestartet

Greifen Sie dann wie in der Abbildung gezeigt auf Nginx-Port 80 zu:

Zusatzwissen: Docker-Grundfunktionen Container-Selbststart Löschen von Images und Löschen von Containern

Einstellungen für den automatischen Neustart des Docker-Containers

Nach dem Neustart des Betriebssystems habe ich festgestellt, dass der Docker-Dienst nicht gestartet wurde und der Container nicht gestartet wurde. Wie kann ich ihn nach dem Neustart automatisch starten?

1. Einstellungen für den automatischen Neustart des Docker-Dienstes

[root@localhost ~]# systemctl aktiviere docker.service

2. Automatische Starteinstellungen des Docker-Containers

[root@localhost ~]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
nginx latest 5a3221f0137b vor 10 Monaten 126 MB
[root@localhost ~]# docker run -itd -p 80:80 nginx
3e28c4b5c6256c0ba04666751e426987d848b7afeb9c59774d5e9831dc78e5ee
[root@localhost ~]# docker run -itd -p 81:80 nginx
f0597c725fd6b7f4229aa9ab5de4a3cb29d09097a81dc8f64d1a60d469001379
[root@localhost ~]# Docker-Port f0597c725fd6
80/tcp -> 0.0.0.0:81
 
[root@localhost ~]# docker ps
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
f0597c725fd6 nginx "nginx -g 'Daemon von?? vor 30 Sekunden Up 29 Sekunden 0.0.0.0:81->80/tcp elastic_allen
3e28c4b5c625 nginx "nginx -g 'Daemon von?? vor 35 Sekunden Up 33 Sekunden 0.0.0.0:80->80/tcp tender_volhard

3. Automatische Starteinstellungen des Docker-Containers

[root@localhost ~]# docker update --restart=always f0597c725fd6 3e28c4b5c625 
f0597c725fd6
3e28c4b5c625 
 
[root@localhost ~]# reboot -h jetzt
Verbindung vom fremden Host geschlossen. 
 
[root@localhost ~]# docker ps
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
f0597c725fd6 nginx "nginx -g 'Daemon von?? vor 13 Minuten Up 2 Minuten 0.0.0.0:81->80/tcp elastic_allen
3e28c4b5c625 nginx "nginx -g 'Daemon von?? vor 13 Minuten Up 2 Minuten 0.0.0.0:80->80/tcp tender_volhard
 

Wenn ein Host über viele Bilder und Container verfügt, können Sie einige oder alle davon löschen, wenn Sie sie zurücksetzen müssen. Dann müssen Sie Folgendes tun.

1. Löschen Sie den Container

[root@localhost ~]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
27c5c4d3cf86 nginx "nginx -g 'Daemon von?? vor 2 Minuten Up 2 Minuten 0.0.0.0:80->80/tcp gracious_nash
61cccfe238a8 nginx "nginx -g 'Daemon von?? vor 2 Minuten Up 2 Minuten 0.0.0.0:81->80/tcp distracted_grothendieck
[root@localhost ~]# docker ps -aq
27c5c4d3cf86
61cccfe238a8

1) Zuerst müssen Sie alle Container stoppen

[root@localhost ~]# docker ps -aq
f0597c725fd6
3e28c4b5c625
8855c7777f83
466d2efe3dd9
20ca589b1a10
e5457b41cae6
314d1d01c941
 
[root@localhost ~]# Docker-Stopp $(docker ps -aq)
f0597c725fd6
3e28c4b5c625
8855c7777f83
466d2efe3dd9
20ca589b1a10
e5457b41cae6
314d1d01c941
[root@localhost ~]# docker ps
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
 

2) Löschen Sie alle Container (wenn Sie nur einen löschen möchten, ändern Sie einfach die Variable dahinter in die Bild-ID)

[root@localhost ~]# docker rm -f $(docker ps -aq)
f0597c725fd6
3e28c4b5c625
8855c7777f83
466d2efe3dd9
20ca589b1a10
e5457b41cae6
314d1d01c941
[root@localhost ~]# docker ps -aq
[root@localhost ~]

2. Löschen Sie das Bild

1) Betrachten Sie das Bild im Host

Docker-Bilder

2) Löschen Sie das Bild mit der angegebenen ID

docker rmi <Bild-ID>

3) Alle Bilder löschen

Docker RMI $ (Docker-Bilder -q)

3. Wenn die zu löschenden Bilder mit anderen Bildern in Zusammenhang stehen und nicht gelöscht werden können

Sie können das Löschen mit dem Parameter -f erzwingen

docker rmi -f $(docker images -q)

Der obige Artikel über die Verwendung von Docker-Nginx-Containern und Tomcat-Containern zum Erreichen von Lastausgleich und dynamischer und statischer Trennung ist alles, was ich mit Ihnen teilen kann. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Grundlegendes Konfigurationsbeispiel von Nginx mit Apache oder Tomcat zur dynamischen und statischen Trennung
  • Verwenden von Nginx+uWsgi zum Trennen der dynamischen und statischen Teile der Django-Framework-Site von Python
  • Einfache Implementierung des Nginx+Tomcat-Reverse-Proxys und der dynamischen und statischen Trennung
  • Detaillierte Erklärung von Nginx zum Trennen von statischem und dynamischem Tomcat
  • nginx realisiert Lastausgleich und dynamische und statische Trennung
  • Nginx-Beispielcode zur Implementierung dynamischer und statischer Trennung
  • Detailliertes Beispiel für die Bereitstellung der dynamischen und statischen Trennung von Nginx+Apache
  • Beispielcode für Nginx zur Erreichung dynamischer und statischer Trennung
  • Nginx implementiert dynamische und statische Trennung Beispielerklärung
  • Implementierungsfallcodeanalyse für dynamische und statische Trennung von Nginx
  • Detaillierte Erläuterung des Prozesses zur Realisierung der dynamischen und statischen Trennung in Springmvc nginx
  • Analyse des Prinzips von Nginx + Tomcat zur Erreichung eines Lastausgleichs sowie einer dynamischen und statischen Trennung
  • Das Prinzip und die Konfiguration des Nginx-Lastausgleichs sowie der dynamischen und statischen Trennung
  • Beispiel, wie nginx dynamische und statische Trennung implementiert
  • Detaillierte Anleitung für nginx von der Installation bis zur Konfiguration (Installation, Sicherheitskonfiguration, Anti-Hotlinking, dynamische und statische Trennung, HTTPS-Konfiguration, Leistungsoptimierung)
  • Implementierung des Nginx+Tomcat-Lastausgleichs und der dynamischen und statischen Clustertrennung
  • Server-Lastausgleich von Nginx + Tomcat zur Erzielung einer dynamischen und statischen Trennung
  • Implementierung und Beschreibung der dynamischen und statischen Trennungskonfiguration von Nginx

<<:  Geben Sie zwei Zahlen in HTML ein, um Additions-, Subtraktions-, Multiplikations- und Divisionsfunktionen zu realisieren

>>:  Ausführliche Erläuterung der verschiedenen Methoden sowie der Vor- und Nachteile der JavaScript-Vererbung

Artikel empfehlen

Ein kurzer Vortrag über das Klonen von JavaScript

Inhaltsverzeichnis 1. Oberflächliches Klonen 2. T...

Erklärung des HTML-Codes der Webseite: geordnete Liste und ungeordnete Liste

In diesem Abschnitt lernen wir Listenelemente in ...

Vue implementiert einen visuellen Drag-Page-Editor

Inhaltsverzeichnis Drag & Drop-Implementierun...

Ungültige Lösung beim Definieren mehrerer Klassenattribute in HTML

Beim Schreiben von HTML definieren wir häufig mehr...

Docker-Fallanalyse: Erstellen eines MySQL-Datenbankdienstes

Inhaltsverzeichnis 1 Konfigurations- und Datenver...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.24

In diesem Artikel finden Sie das Installations-Tu...

Detaillierte Erklärung des HTML-Seitenkopfcodebeispiels

Wissenspunkt 1: Legen Sie die Basis-URL der Webse...

Vorschläge zur Optimierung der Webseiten-Kopfzeile

Logo-Optimierung: 1. Das Logobild sollte so klein...