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

Verhindern von SQL-Injection in Webprojekten

Inhaltsverzeichnis 1. Einführung in SQL-Injection...

Implementierung der React-Sternebewertungskomponente

Voraussetzung ist die Eingabe der Bewertungsdaten...

Grafisches Tutorial zur MySQL8-Installationsversion

Installation Die erforderlichen Unterlagen finden...

Beispiel für die Implementierung der Graphql-Schnittstelle in Vue

Hinweis: In diesem Artikel geht es um die grundle...

Fehlereinfügungsanalyse der Funktion „updatexml()“ von MySQL

Verstehen Sie zunächst die Funktion updatexml() U...

Installations-Tutorial für mysql8.0rpm auf centos7

Laden Sie zunächst das Diagramm herunter 1. Deins...

Erklärung zur Verwendung von JavaScript ECharts

Ich habe ECharts schon einmal bei einem Projekt v...

Mit vsftp einen FTP-Server unter Linux aufbauen (mit Parameterbeschreibung)

einführen In diesem Kapitel wird hauptsächlich de...

Zusammenfassung einiger Vorschläge zum HTML-Code-Schreibstil

Das Protokoll der Ressourcendatei weglassen Es wi...

Tutorial zur Installation des Nginx-RTMP-Streaming-Servers unter Ubuntu 14

1. RTMP Das RTMP-Streaming-Protokoll ist ein von ...

So importieren, registrieren und verwenden Sie Komponenten in Stapeln in Vue

Vorwort Komponenten sind etwas, das wir sehr häuf...