Analyse des Prinzips von Nginx + Tomcat zur Erreichung eines Lastausgleichs sowie einer dynamischen und statischen Trennung

Analyse des Prinzips von Nginx + Tomcat zur Erreichung eines Lastausgleichs sowie einer dynamischen und statischen Trennung

1. Implementierungsprinzip des Nginx-Lastausgleichs

1. Nginx implementiert Lastenausgleich über Reverse-Proxy

Reverse Proxy bezieht sich auf die Verwendung eines Proxyservers (z. B. Nginx), um Verbindungsanforderungen im Internet anzunehmen, die Anforderungen dann an einen Server im internen Netzwerk (z. B. Tomcat) weiterzuleiten und die vom Server erhaltenen Ergebnisse an den Client zurückzugeben, der die Verbindung im Internet anfordert. Zu diesem Zeitpunkt erscheint der Proxyserver (z. B. Nginx) der Außenwelt als Reverse-Proxyserver.
Aus Sicht des Clients weiß dieser eigentlich nicht, welcher Server der eigentliche Dienstanbieter ist. Er weiß nur, dass er den Reverse-Proxy-Server angefordert hat. Daher verbirgt die Reverse-Proxy-Methode die Adresse des realen Servers vor der Außenwelt und reduziert so die Sicherheitsrisiken bis zu einem gewissen Grad.

2. Hauptparameter der Nginx Reverse Proxy-Konfiguration Upstream-Service-Poolname {}

Rolle: Konfigurieren des Back-End-Serverpools zum Bereitstellen von Antwortdaten

Proxy-Passwort http:// Name des Servicepools

Funktion: Konfigurieren Sie die Serververarbeitung, die Zugriffsanforderungen an den Backend-Serverpool weiterleitet

2. Implementierungsprinzip der dynamischen und statischen Trennung von Nginx

1. Dynamisches und statisches Trennprinzip

Der Server empfängt Anfragen vom Client, die sowohl statische als auch dynamische Ressourcen enthalten. Statische Ressourcen werden von Nginx bereitgestellt und dynamische Ressourcen werden von Nginx an das Backend weitergeleitet.

2. Vorteile der statischen Verarbeitung von Nginx

Nginx ist bei der Verarbeitung statischer Seiten wesentlich effizienter als Tomcat. Wenn Tomcat 1.000 Anfragen verarbeitet, verarbeitet Nginx 6.000 Anfragen.
Der Durchsatz von Tomcat beträgt 0,6 M pro Sekunde und der Durchsatz von Nginx beträgt 3,6 M pro Sekunde
Die Fähigkeit von Nginx, statische Ressourcen zu verarbeiten, ist 6-mal so gut wie die von Tomcat

3. Dynamische und statische Trennung von Nginx + Tomcat, Konfigurationsschritte für den Lastausgleich und Umgebungsvorbereitung

Gastgeber Betriebssystem IP-Adresse Erforderliche Software
Nginx-Server CentOS7 192.168.109.7 nginx-1.12.0.tar.gz
Tomcat Server1 CentOS7 192.168.109.22 apache-tomcat-9.0.16.tar.gz, jdk-8u201-linux-x64.rpm
Tomcat Server2 CentOS7 192.168.109.23 apache-tomcat-9.0.16.tar.gz, jdk-8u201-linux-x64.rpm
1. Stellen Sie den Nginx-Lastausgleichsserver bereit

Bildbeschreibung hier einfügen

#!/bin/bash
#Skriptbeschreibung: Kompilieren und installieren Sie den Nginx-Dienst. #Hinweis: Bitte legen Sie nginx-1.12.0.tar.gz vor der Verwendung in das Verzeichnis /opt. #Fahren Sie die Firewall herunter. systemctl stop firewalld
systemctl deaktiviert Firewall
0

#Installieren Sie die erforderlichen Entwicklungspakete, die Kompilierungsumgebung und den Compiler yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

#Erstellen Sie einen Programmbenutzer, um den Zugriff genau zu steuern useradd -M -s /sbin/nologin nginx

#Entpacken Sie das Installationspaket cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/

#Kompilieren und installieren Sie nginx; geben Sie den Installationspfad, den Benutzernamen, den Gruppennamen an und aktivieren Sie Module, um Statistiken zu unterstützen. cd /opt/nginx-1.12.0/
./Konfigurieren --prefix=/usr/local/nginx --user=nginx --group=nginx --mit-http_stub_status_module --mit-file-aio --mit-http_gzip_static_module --mit-http_flv_module --mit-http_ssl_module

machen && machen installieren

#Softlink erleichtert dem System die Identifizierung des Nginx-Operationsbefehls ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

#Nginx-Systemdienst hinzufügen echo '[Unit]
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=multi-user.target' > /lib/systemd/system/nginx.service

#Dienste aktivieren und freigeben, automatischen Start aktivieren chmod 754 /lib/systemd/system/nginx.service
systemctl startet nginx.service neu
systemctl aktiviere nginx.service 

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

2. Stellen Sie zwei Tomcat-Anwendungsserver bereit

Bildbeschreibung hier einfügen

#!/bin/bash
#Tomcat-Dienst installieren#Firewall herunterfahrensystemctl stop firewalld
systemctl deaktiviert Firewall
0

#JDK installieren
cd /opt
rpm -ivh jdk-8u201-linux-x64.rpm

#Setzen Sie die JDK-Umgebungsvariable echo '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' > /etc/profile.d/java.sh

Quelle /etc/Profil

#Tomcat installieren und starten
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
/usr/local/tomcat/bin/startup.sh 

Bildbeschreibung hier einfügen

3. Dynamische und statische Trennkonfiguration

Bitte sehen Sie Tomcat

1) Tomcat1-Serverkonfiguration

mkdir /usr/local/tomcat/webapps/test

#Dynamische Seite konfigurieren 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: www.test1.com");%>
</body>
</html> 

Bildbeschreibung hier einfügen

#Ändern Sie die Konfigurationsdatei vim /usr/local/tomcat/conf/server.xml
<Hostname="192" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	<Context docBase="/usr/local/tomcat/webapps/test" Pfad="" reloadable="true" />
</Host>

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh 

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

2) Tomcat2-Serverkonfiguration

mkdir /usr/local/tomcat/webapps/test

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 1: www.test2.com");%>
</body>
</html> 

Bildbeschreibung hier einfügen

#Ändern Sie die Konfigurationsdatei vim /usr/local/tomcat/conf/server.xml
<Hostname="192" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	<Context docBase="/usr/local/tomcat/webapps/test" Pfad="" reloadable="true" />
</Host>

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh 

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

3) Nginx-Serverkonfiguration

#Bereiten Sie statische Seiten und statische Bilder vor echo '<html><body><h1>dies ist statisch</h1></body></html>' > /usr/local/nginx/html/index.html
mkdir /usr/local/nginx/html/long
cd /usr/local/nginx/html/long 

Bildbeschreibung hier einfügen

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
#gzip ein;

Upstream Tomcat_Server {
  Server 192.168.109.22:8080 Gewicht=1;
  Server 192.168.109.23:8080 Gewicht=1;
}

Server {
	hören Sie 80;
	Servername www.long.com;

  #Zeichensatz koi8-r;

	#access_log Protokolle/Host.access.log Haupt;

    #Konfigurieren Sie Nginx so, dass dynamische Seitenanforderungen verarbeitet und JSP-Dateianforderungen zur Verarbeitung an den Tomcat-Server weitergeleitet werden. Speicherort ~ .*\.jsp$ {
		Proxy-Passwort http://Tomcat-Server;
		
		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;
	}
    
  #Konfigurieren Sie Nginx zur Verarbeitung statischer Bildanforderungen location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
		root /usr/local/nginx/html/img/;
		läuft in 10 Tagen ab;
	}
    Standort / {
      Stamm-HTML;
      Index Index.html Index.htm;
    }


systemctl startet nginx.service neu 

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

4. Zugangstest

Testen Sie den statischen Seiteneffekt. Browserzugriff http://192.168.109.7/
Browserzugriff http://192.168.109.7/long.jpg

Bildbeschreibung hier einfügen

Testen Sie den Lastausgleichseffekt, aktualisieren Sie den Browser kontinuierlich, um den Browserzugriff auf http://192.168.109.7/test/index.jsp zu testen

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

Damit ist dieser Artikel über die Analyse der Prinzipien des Lastausgleichs und der dynamischen und statischen Trennung, die mit Nginx+Tomcat erreicht werden, abgeschlossen. Weitere relevante Inhalte zum Lastausgleich und zur dynamischen und statischen Trennung von Nginx finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

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
  • Docker Nginx-Container und Tomcat-Container zur Realisierung von Lastausgleich und dynamischen und statischen Trennungsvorgängen
  • 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

<<:  So konfigurieren Sie geplante MySQL-Aufgaben (EVENT-Ereignisse) im Detail

>>:  CSS fixiert das Tag auf Containerebene (div...) an einer Position (ganz rechts auf der Seite)

Artikel empfehlen

So legen Sie die Anzahl der MySQL-Verbindungen fest (zu viele Verbindungen)

Während der Verwendung von MySQL wurde festgestel...

js zur Realisierung einer einfachen Scheibenuhr

In diesem Artikel wird der spezifische Code von j...

Benutzererfahrung bei der Neugestaltung der Portal-Website

<br />Vom Start der neuen Homepage von NetEa...

Detaillierte Erklärung der Verwendung des Linux-Befehls lsof

lsof (List Open Files) ist ein Tool zum Anzeigen ...

JavaScript-Ereigniserfassungs-Blubbern und Erfassungsdetails

Inhaltsverzeichnis 1. Ereignisablauf 1. Konzept 2...

Zusammenfassung der Verwendung von Linux-SFTP-Befehlen

sftp ist die Abkürzung für Secure File Transfer P...

Implementierung von Docker-Datenvolumenoperationen

Erste Schritte mit Datenvolumes Wenn wir im vorhe...

HTML-Implementierung eines einfachen Rechners mit detaillierten Ideen

Code kopieren Der Code lautet wie folgt: <!DOC...

Warum node.js nicht für große Projekte geeignet ist

Inhaltsverzeichnis Vorwort 1. Anwendungskomponent...

Detaillierte Erläuterung der Datentypprobleme bei der JS-Array-Indexerkennung

Als ich ein WeChat-Applet-Projekt schrieb, gab es...

Bringen Sie Ihnen bei, wie Sie wartbaren JS-Code schreiben

Inhaltsverzeichnis Was ist wartbarer Code? Code-K...