Detaillierte Erläuterung der Installation und Konfiguration des Nginx+Tomcat-Load-Balancing-Clusters

Detaillierte Erläuterung der Installation und Konfiguration des Nginx+Tomcat-Load-Balancing-Clusters

Vorwort

Stellen Sie den Tomcat- und Nginx+Tomcat-Lastausgleichscluster sowie die Tomcat-Anwendungsszenarien vor und konzentrieren Sie sich dann auf die Installation und Konfiguration von Tomcat. Der Lastausgleichsfall Nginx+Tomcat ist eine zuverlässige Website-Lösung für Produktionsumgebungen.

1. Nginx + Tomcat

Normalerweise kann eine Tomcat-Site nicht allein in einer Produktionsumgebung verwendet werden, da die Möglichkeit eines Einzelpunktfehlers besteht und die Site nicht in der Lage ist, zu viele komplexe und unterschiedliche Kundenanfragen zu verarbeiten. Daher benötigen wir eine zuverlässigere Lösung, um die Website-Architektur zu verbessern.

Nginx ist eine hervorragende HTTP-Serversoftware. Sie kann bis zu 50.000 gleichzeitige Verbindungen unterstützen, verfügt über leistungsstarke Funktionen zur Verarbeitung statischer Ressourcen, läuft stabil und verbraucht sehr wenig Systemressourcen wie Speicher und CPU. Derzeit verwenden viele große Websites den Nginx-Server als Reverse-Proxy und Lastenausgleich für Back-End-Website-Programme, um die Ladekapazität der gesamten Site zu verbessern.

Bereitstellungsumgebung

Gastgeber Betriebssystem IP-Adresse Hauptsoftware

Nginx-Server

CentOS 7.4 x86_64

192.168.196.146

nginx-1.12.2.tar.gz

Tomcat-Server 1

CentOS 7.4 x86_64

192.168.196.147

①apache-tomcat-9.0.16.tar.gz / ②jdk-8u201-linux-x64.rpm

Tomcat-Server 2

CentOS 7.4 x86_64

192.168.196.153

①apache-tomcat-9.0.16.tar.gz / ②jdk-8u201-linux-x64.rpm

2. Konfigurieren Sie den Nginx-Server

1. Firewall-bezogene Dienste deaktivieren

[root@localhost ~]# systemctl stoppe Firewall
[root@localhost ~]# systemctl Firewall deaktivieren
[root@localhost ~]# setenforce 0
 
[root@localhost ~]# vim /etc/resolv.conf
Nameserver 114.114.114.114

2. Installieren Sie Abhängigkeitspakete

[root@localhost ~]# yum install -y gcc gcc-c++ pcre-devel zlib-devel make

3. Kompilieren und installieren Sie Nginx

[root@localhost ~]# tar zxvf nginx-1.12.2.tar.gz -C /opt/
 
[root@localhost ~]# cd /opt/nginx-1.12.2/
[root@localhost nginx-1.12.2]# ./konfigurieren \
--prefix=/usr/local/nginx \
--Benutzer=nginx \
--group=nginx \
--mit-http_stub_status_module
 
[root@localhost nginx-1.12.2]# make && make install
 
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
[root@localhost ~]# useradd -M -s /sbin/nologin nginx

4. Fügen Sie den Nginx-Systemdienst hinzu

[root@localhost ~]# vim /lib/systemd/system/nginx.service
 
[Einheit]
Beschreibung=nginx
Nach=Netzwerk.Ziel
[Service]
Typ=Forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Installieren]
WantedBy=Mehrbenutzer.Ziel
 
[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service #Ermächtigung, andere Benutzer als Root können [root@localhost ~]# systemctl start nginx.service nicht ändern.
[root@localhost ~]# systemctl aktiviere nginx.service

5. Webseiten-Tests

3. Tomcat-Anwendungsserver bereitstellen

1. Vorbereitung der Umsetzung

[root@localhost ~]# systemctl stoppe Firewall
[root@localhost ~]# systemctl deaktiviere firewalld.service
[root@localhost ~]# setenforce 0

2. Installieren Sie JDK und konfigurieren Sie die Java-Umgebung

[root@localhost ~]# rpm -ivh jdk-8u201-linux-x64.rpm

3. Richten Sie die JDK-Umgebung ein

[root@localhost ~]# vim /etc/profile
...
#Fügen Sie drei Inhaltszeilen ein export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
 
[root@localhost ~]# Quelle /etc/Profil

4. Installieren und konfigurieren Sie Tomcat

[root@localhost ~]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /opt/
[root@localhost ~]# cd /opt/
[root@localhost opt]# mv apache-tomcat-9.0.16/ /usr/local/tomcat

5. Optimieren Sie das Management

[root@localhost ~]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@localhost ~]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

6. Starten Sie den Dienst startup.sh

Konfiguration von Tomcat1

1. Erstellen Sie ein Testverzeichnis

[root@localhost ~]# mkdir /usr/local/tomcat/webapps/test

2. Dynamische Seitenkonfiguration

[root@localhost ~]# vim /usr/local/tomcat/webapps/test/index.jsp
<%@ Seitensprache="java" import="java.util.*" Seitenkodierung="UTF-8"%>
<html> 
<Kopf>
<title>JSP-Test1-Seite</title>
</Kopf>
<Text>
<% out.println("Dynamische Seite 1, http://www.test1.com");%>
</body>
</html>
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
...
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" /> #Etwa 160 Zeilen eingefügt...
 
[root@localhost ~]# shutdown.sh
[root@localhost ~]# startup.sh

Tomcat2-Konfiguration

1. Erstellen Sie ein Testverzeichnis

[root@localhost ~]# mkdir /usr/local/tomcat/webapps/test

2. Dynamische Seitenkonfiguration

[root@localhost ~]# vim /usr/local/tomcat/webapps/test/index.jsp
<%@ Seitensprache="java" import="java.util.*" Seitenkodierung="UTF-8"%>
<html> 
<Kopf>
<title>JSP-Test2-Seite</title>
</Kopf>
<Text>
<% out.println("Dynamische Seite 2, http://www.test2.com");%>
</body>
</html>
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
...
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" /> #Etwa 160 Zeilen eingefügt...
 
[root@localhost ~]# shutdown.sh
[root@localhost ~]# startup.sh

3. nginx bereitet statische Seiten vor

[root@localhost ~]# echo '<html><body><h1>Statische Schnittstelle...</h1></body></html>' > /usr/local/nginx/html/index.html
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
...
Upstream Tomcat_Server {
        Server 192.168.192.147:8080 Gewicht=1;
        Server 192.168.192.153:8080 Gewicht=1;
}
 
location ~ .*\.jsp$ { #Weisen Sie die von nginx empfangene Client-IP-Adresse der Quell-IP in der Anforderung zu, zu Tomcat zu springen; ermitteln Sie die tatsächliche IP des Clients und weisen Sie den Proxy-Pass http://tomcat_server zu und springen Sie damit; 
        proxy_set_header HOST $host; ##Legen Sie den Hostnamen (Domänenname oder IP, Port) der vom Backend-Webserver empfangenen Anfrage fest. Der Standardhostwert ist der Hostname, der durch die direkte Verbindung proxy_pass festgelegt wurde proxy_set_header X-Real-IP $remote_addr; #Kopieren Sie $remote_addr nach X-Real-IP (benutzerdefiniert) und wechseln Sie zur Quell-IP und zurück
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #Wenn nginx als Proxyserver verwendet wird, zeichnet die IP-Liste die vom Proxy übergebenen IPs und seine IP auf.}
...
 
[root@localhost ~]#systemctl nginx.service neu starten

4. Testergebnisse der Webseite

Zusammenfassen

Sie können zwei oder mehr Tomcat-Server im Upstream von Nginx platzieren, um einen Lastausgleichscluster zu bilden. Anschließend können Sie die Cluster-Site über eine Webproxy-Methode wie proxy_pass am Standort festlegen und anschließend das Gewicht des Tomcat-Servers separat über den Gewichtswert festlegen.

In einer Produktionsumgebung kann die Hardwarekonfiguration von Tomcat-Servern unterschiedlich sein. Sie können den Gewichtungswert des entsprechenden Servers ändern, um die Verteilung von Zugriffsanforderungen auf Server mit höherer oder niedrigerer Konfiguration zu steuern.

Dies ist das Ende dieses Artikels über die detaillierte Installation und Konfiguration des Nginx+Tomcat-Lastausgleichsclusters. Weitere relevante Inhalte zum Nginx Tomcat-Lastausgleichscluster finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Implementierungsbeispiel eines Nginx+Tomcat-Load-Balancing-Clusters
  • Tutorial zum Aufbau eines Hochleistungs-Load-Balancing-Clusters mit Nginx+Tomcat
  • So erstellen Sie mit Nginx+Tomcat einen Hochleistungs-Load-Balancing-Cluster
  • nginx+tomcat implementiert Lastenausgleich und verwendet Redis-Sitzungsfreigabe
  • Nginx und Tomcat realisieren dynamische und statische Trennung und Lastausgleich
  • Detaillierte Erläuterung der Konfigurationspraxis für den Lastenausgleich des Nginx+Tomcat+Https-Servers
  • Implementierung des Nginx+Tomcat-Lastausgleichs und der dynamischen und statischen Clustertrennung

<<:  Zusammenfassung der Wissenspunkte zur Verwendung berechneter Eigenschaften in Vue

>>:  Detaillierte Erklärung der Lösung zum doppelten Einfügen von MySQL-Primärschlüssel und eindeutigem Schlüssel

Artikel empfehlen

Detaillierte Erläuterung der CSS BEM-Schreibstandards

BEM ist ein komponentenbasierter Ansatz zur Weben...

So stellen Sie mit Docker schnell einen Elasticsearch-Cluster bereit

In diesem Artikel werden Docker Container (orches...

JavaScript implementiert eine bidirektionale verknüpfte Listenprozessanalyse

Inhaltsverzeichnis 1. Was ist eine doppelt verknü...

Erläuterung des MySQL-Nicht-Null-Einschränkungsfalls

Inhaltsverzeichnis Legen Sie beim Erstellen einer...

Eine Sammlung möglicher Probleme bei der Migration von SQLite3 nach MySQL

Kurzbeschreibung Passend für Leser: Mobile Entwic...

10 zu wenig genutzte oder missverstandene HTML-Tags

Hier sind 10 HTML-Tags, die zu wenig verwendet od...

Mysql-Sortierung und Paginierung (Order by & Limit) und vorhandene Fallstricke

Sortierabfrage (Sortieren nach) Im E-Commerce: Wi...

Beispiel für die Installation von Kong Gateway in Docker

1. Erstellen Sie ein Docker-Netzwerk Docker-Netzw...

Hallo – Erfahrungsaustausch zum Entwurf von Dialogfeldern

„Was ist los?“ Sofern Sie nicht an bestimmte Arten...

Reflexion und Proxy in Front-End-JavaScript

Inhaltsverzeichnis 1. Was ist Reflexion? 2. Refle...

Ausführliche Erläuterung der InnoDB-Sperren in der MySQL-Technologie

Inhaltsverzeichnis Vorwort 1. Was ist ein Schloss...

Detaillierte Erklärung des MySQL-Datenbank-LIKE-Operators in Python

Der LIKE-Operator wird in der WHERE-Klausel verwe...

Vue3 setup() - Erweiterte Verwendungsbeispiele - ausführliche Erklärung

Inhaltsverzeichnis 1. Unterschiede zwischen Optio...