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

Beispiel für die reguläre Umschreibmethode für Nginx Rewrite (Matching)

Die Rewrite-Funktion von Nginx unterstützt regelm...

Ein einfaches Beispiel für die Verwendung von Vue3-Routing VueRouter4

Routenplanung vue-router4 behält den Großteil der...

So unterstützen Sie ApacheBench mehrere URLs

Da der Standard-AB nur Stresstests für eine einze...

Detaillierte Erklärung des Prinzips und der Verwendung von MySQL-Ansichten

Dieser Artikel veranschaulicht anhand von Beispie...

Detaillierte Erklärung, wie Komponenten in React kommunizieren

1. Was ist Wir können die Kommunikation zwischen ...

Tudou.com Frontend-Übersicht

1. Arbeitsteilung und Prozess <br />Bei Tud...

HTML-Basis-URL-Tag

Seine Funktion besteht darin, einen globalen Stil ...

Grafisches Tutorial zur Installation und Konfiguration von mysql5.7.20 (Mac)

Grafisches Tutorial zur Installation und Konfigur...

So ändern Sie schnell das Root-Passwort unter CentOS8

Starten Sie die virtuelle Centos8-Maschine und dr...

Semantisierung von HTML-Tags (einschließlich H5)

einführen HTML stellt die kontextuelle Struktur u...

Installieren Sie JDK1.8 in einer Linux-Umgebung

Inhaltsverzeichnis 1. Installationsumgebung 2. In...

Tutorial zur Migration von MySQL von phpstudy nach Linux

Projektzweck Migrieren Sie die Daten in MySQL 5.5...