So konfigurieren Sie mehrere Tomcats mit Nginx-Lastausgleich unter Linux

So konfigurieren Sie mehrere Tomcats mit Nginx-Lastausgleich unter Linux

Die Methoden zur Installation von Nginx und mehreren Tomcats unter Linux werden hier nicht vorgestellt. Wenn Sie sich nicht sicher sind, können Sie Folgendes nachschlagen:

Installieren Sie nginx unter Linux:

https://www.jb51.net/article/159519.htm

Installieren Sie mehrere Tomcats unter Linux:

https://www.jb51.net/article/159521.htm

Wenn auf unserem Server Nginx und mehrere Tomcats installiert sind, können wir jetzt versuchen, mit der Lastverteilung von Nginx zu spielen.

Stellen Sie zunächst kurz meine Betriebsumgebung vor

Ein Alibaba Cloud-Server,

Linux-System, jdk1.8, nginx installiert,

Es sind vier Tomcats installiert und die Portnummern sind konfiguriert, entsprechend 8080, 8081, 8082 und 8083.


1: Geben Sie das conf-Verzeichnis unter dem nginx-Verzeichnis ein

Dies ist mein Nginx-Installationsverzeichnis:

[root@aliServer ~]# cd /usr/local/nginx/conf

Zwei: Bearbeiten Sie nginx.conf


[root@aliServer conf]# vi nginx.conf

3. Konfigurieren Sie die Servergruppe

1: Upstream-Konfiguration zwischen http{}-Knoten hinzufügen. (Achten Sie darauf, nicht „localhost“ zu schreiben, da sonst die Zugriffsgeschwindigkeit sehr langsam ist.)

Upstream nginxDemo {
  Server 127.0.0.1:8081; #Serveradresse 1
  Server 127.0.0.1:8082; #Serveradresse 2
  Server 127.0.0.1:8082; #Serveradresse 3
  Server 127.0.0.1:8083; #Serveradresse 4
}

2: Ändern Sie die Portnummer 80, auf der nginx lauscht

Der Standardport von Nginx ist 80. Ich habe ihn noch nicht geändert.

Server {
  listen 80; #Der Standardwert ist 80, dieser kann in andere Portnummern geändert werden. Natürlich können belegte Portnummern nicht geschrieben werden.
  ......
}

3: Verwenden Sie proxy_pass, um die Reverse-Proxy-Adresse zu konfigurieren

In location\{} muss „http://“ enthalten sein und die folgende Adresse muss mit dem im ersten Upstream-Schritt definierten Namen übereinstimmen (d. h. der Name nginxDemo wird angepasst und die beiden Stellen müssen übereinstimmen).

Standort / {
      Stamm-HTML;
      Index Index.html Index.htm;
      proxy_pass http://nginxDemo; #Proxy-Adresse konfigurieren}

Nachdem die Konfiguration abgeschlossen ist, wie in der Abbildung dargestellt:


Viertens: Starten Sie nginx

Mein Installationspfad von nginx ist /usr/local/nginx

Mein Startbefehl lautet also:

[root@aliServer ~]# /usr/local/nginx/sbin/nginx

Da nginx bei der vorherigen Installation gestartet wurde, wird beim erneuten Start ein Fehler gemeldet, dass die Portnummer belegt ist


Zu diesem Zeitpunkt verwenden wir den Befehl, um die Belegung jeder Portnummer anzuzeigen

[root@aliServer ~]# netstat -ntpl 

Wir können sehen, dass nginx von PID 9097 belegt ist. Verwenden Sie kill -9, um es zu beenden.

[root@aliServer ~]# kill -9 9097

Starten Sie nginx erneut

[root@aliServer ~]# /usr/local/nginx/sbin/nginx

Es erfolgt keine Antwort, das stimmt, dann geben Sie Ihre Serveradresse in den Browser ein


Dies zeigt an, dass nginx erfolgreich gestartet wurde. Überprüfen wir nun, ob die Konfiguration korrekt ist und ob die Last ausgeglichen werden kann. . .

Fünftens: Überprüfung

Wir alle wissen, dass bei Verwendung des Nginx-Lastausgleichs alle Clientanforderungen über Nginx laufen, sodass Nginx entscheiden kann, an wen diese Anforderungen weitergeleitet werden. Wenn Server A über mehr Ressourcen verfügt (mehr CPU, mehr Speicher usw.) und Server B nicht so viel Rechenleistung wie Server A hat, leitet Nginx mehr Anforderungen an A und weniger Anforderungen an Server B weiter. Auf diese Weise wird ein Lastausgleich erreicht, und selbst wenn einer der Server ausfällt, können Benutzer weiterhin normal auf die Website zugreifen.

Vor der Überprüfung sind einige Vorbereitungen erforderlich.

1: Bereiten Sie eine einfache JSP vor, etwa:


Ich habe 4 Tomcats auf einem Server installiert und 4 index.jsp-Dateien vorbereitet

Sie sind

<title>Tomcat8080<title> <h1>Hallo Tomcat_8080</h1>
<title>Tomcat8081<title> <h1>Hallo Tomcat_8081</h1>
<title>Tomcat8082<title> <h1>Hallo Tomcat_8082</h1>
<title>Tomcat8083<title> <h1>Hallo Tomcat_8083</h1>

Hierbei ist zu beachten, dass der Name der JSP-Datei index.jsp sein muss, da der Bildschirm nach dem erfolgreichen Start von Tomcat wie in der Abbildung dargestellt aussieht:


Lesen Sie webapps/ROOT/index.jsp im Tomcat-Installationsverzeichnis

Meine Adresse ist: /usr/java/tomcat/tomcat_8080/webapps/ROOT


Überschreiben Sie die Standard-index.jsp-Datei jedes Tomcats mit den vier zuvor vorbereiteten index.jsp-Dateien.

Starten Sie jeden Tomcat

[root@aliServer bin]# ./startup.sh

Zu diesem Zeitpunkt geben wir xxx.xxx.xx.xx:8080 in den Browser ein und Sie werden feststellen, dass das Kätzchen nicht mehr angezeigt wird, aber. . . . . .




Alle 4 Tomcats wurden erfolgreich gestartet und Nginx wurde ebenfalls erfolgreich gestartet.

Geben Sie zu diesem Zeitpunkt Ihre Server-IP in den Browser ein und aktualisieren Sie die Seite kontinuierlich. Sie werden feststellen, dass auf der Seite 8080, 8081, 8082 und 8083 angezeigt werden. Dies liegt natürlich daran, dass nginx entscheidet, wohin die Anforderung gesendet werden soll, basierend darauf, welcher Server über ausreichendere Ressourcen verfügt. Die Adresse unserer Anforderung im Browser bleibt unverändert, aber wir greifen auf unterschiedliche Tomcat-Server zu, was bedeutet, dass nginx erfolgreich konfiguriert ist.

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:
  • So implementieren Sie Nginx Reverse Proxy und Load Balancing (basierend auf Linux)
  • Detaillierte Erläuterung der Installation des Nginx-Servers und der Lastausgleichskonfiguration auf einem Linux-System
  • So erstellen Sie einen Nginx-Load-Balancing-Dienst unter Linux
  • Detaillierte Erläuterung der Linux-Systemkonfiguration Nginx Load Balancing
  • Detaillierte Erläuterung der Anwendungsfälle der Nginx-Lastausgleichskonfiguration unter Linux.

<<:  Installations- und Konfigurationsmethode für komprimierte MySQL Community Server-Pakete

>>:  Detaillierte Erklärung von JavaScript Promise und Async/Await

Artikel empfehlen

Lösen Sie das Problem „Rand: oberer Kollaps“ in CCS

Die HTML-Struktur ist wie folgt: Die CCS-Struktur...

Tiefgreifendes Verständnis von Javascript-Prototypen und Prototypenketten

Inhaltsverzeichnis 1. Was ist ein Prototyp? 2. Pr...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.18 (Linux)

Dieser Artikel zeichnet das grafische Tutorial zu...

Zusammenfassung der für MySQL erforderlichen allgemeinen Kenntnisse

Inhaltsverzeichnis Primärschlüsseleinschränkung E...

Detaillierte Erklärung des Initialisierungsmechanismus in Bash

Bash-Initialisierungsdateien Interaktive Login-Sh...

Beispiel für ein JavaScript-Meldungsfeld

In JavaScript können drei Arten von Meldungsfelde...

Warum der CSS-Attributwert clear:right im Detail nicht funktioniert

Die Verwendung der Clear-Eigenschaft zum Löschen v...

IE6/7 wird ein Chaos: Problem mit der Höhe leerer Textknoten

Vorwort: Verwenden Sie die Debugleiste, um den Dok...

Wie oft werden mehrere setStates in React aufgerufen?

Inhaltsverzeichnis 1. Zwei setState, wie oft soll...

Erweiterte Closures in JavaScript erklärt

Inhaltsverzeichnis 1. Das Konzept der Schließung ...