1. Nginx implementiert das LastausgleichsprinzipNginx implementiert Lastenausgleich durch Reverse-Proxy Der Nginx-Server wird als Front-End verwendet, der Tomcat-Server als Back-End und Webseitenanforderungen werden vom Nginx-Dienst weitergeleitet. Anstatt jedoch alle Webanforderungen weiterzuleiten, werden die statischen Seitenanforderungen vom Nginx-Server selbst verarbeitet und die dynamischen Seitenanforderungen zur Verarbeitung an den Back-End-Tomcat-Server weitergeleitet. Tomcat ist ein leichtgewichtiger Anwendungsserver und die Menge an Datenverkehr, die er verarbeiten kann, reicht möglicherweise nicht aus. Daher benötigen wir mehrere Tomcat-Server und müssen dann Nginx verwenden, um Gewichte zu konfigurieren und den Tomcat-Server für die Verarbeitung auszuwählen. Dies ist eine Lastausgleichsstrategie . Nginx-Server 1. Verwenden Sie Exact Matching auf der Homepage 2. Statische Seiten nutzen regelmäßiges Matching, um sie selbst zu verarbeiten 3. Dynamische Seiten verwenden reguläre Ausdrücke, um Anfragen abzugleichen, die mit jsp enden, und verwenden proxy_pass, um sie an den Tomcat-Server weiterzuleiten 2. Prinzip der dynamischen und statischen Trennung von NginxDer 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. Vorteile der statischen Verarbeitung von Nginx
3. Dynamische und statische Trennung von Nginx + Tomcat sowie Konfigurationsschritte zum LastenausgleichUmweltvorbereitung:Nginx-Server: 192.168.121.13 Tomcat-Server 1: 192.168.121.12:8080 192.168.121.12:8081 Tomcat-Server 2: 192.168.121.10 1. Stellen Sie den Nginx-Lastausgleichsserver bereit Laden Sie zunächst das komprimierte Paket nginx-1.12.0.tar.gz in das Verzeichnis /opt hoch. systemctl stop firewalld.service systemctl deaktivieren Sie Firewalld.service 0 yum install -y pcre-devel zlib-devel openssl-devel gcc gcc-c++ make Benutzeradd -M -s /sbin/nologin nginx cd /opt tar zxvf nginx-1.12.0.tar.gz -C /opt/ cd nginx-1.12.0/ ./konfigurieren \ --prefix=/usr/local/nginx \ --Benutzer=nginx \ --group=nginx \ --mit-Datei-aio \ --mit-http_stub_status_module \ --mit-http_gzip_static_module \ --mit-http_flv_module \ --mit-http_ssl_module machen && machen installieren ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ vim /lib/systemd/system/nginx.service [Einheit] Beschreibung=nginx Nach=Netzwerk.Ziel [Service] Typ=Forking PID-Datei = /usr/local/nginx/logs/nginx.pid ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Installieren] WantedBy=Mehrbenutzer.Ziel chmod 754 /lib/systemd/system/nginx.service systemctl starte nginx.service systemctl aktiviere nginx.service 2. Stellen Sie zwei Tomcat-Anwendungsserver bereit Die erforderlichen Installationspakete sind: apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm #scp apache-tomcat-9.0.16.tar.gz [email protected]:/opt #Laden Sie das erforderliche komprimierte Paket von Tomcat1 auf den Tomcat2-Server hoch. Natürlich können wir das komprimierte Paket auch direkt in das Verzeichnis /opt ziehen systemctl stop firewalld.service systemctl deaktivieren Sie Firewalld.service 0 rpm -qpl jdk-8u201-linux-x64.rpm rpm -ivh jdk-8u201-linux-x64.rpm Java-Version vim /etc/profile.d/java.sh 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 Quelle /etc/profile.d/java.sh Java-Version cd /opt vim abc.java öffentliche Klasse abc { öffentliche statische void main(String[] args){ System.out.println("Hallo Welt!") } } [root@localhost?opt]#javac abc.java #Wird verwendet, um festzustellen, ob die JDK-Umgebung erfolgreich eingerichtet wurde [root@localhost?opt]#java abc Hallo Welt! cd /opt tar zxvf apache-tomcat-9.0.16.tar.gz mv apache-tomcat-9.0.16 /usr/local/tomcat ##Tomcat starten## /usr/local/tomcat/bin/startup.sh netstat -natp | grep 8080 Dynamische und statische Trennkonfiguration(1) Tomcat1 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-Test1-Seite</title> #Als Test1-Seite angeben</head> <Text> <% out.println("Dynamische Seite 1, http://www.test1.com");%> </body> </html> vim /usr/local/tomcat/conf/server.xml #Da der Hostname als localhost konfiguriert ist, müssen Sie die vorherige HOST-Konfiguration löschen <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context docBase="/usr/local/tomcat/webapps/test" Pfad="" reloadable="true"> </Kontext> </Host> /usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh (2) Tomcat2-Serverkonfiguration mkdir /usr/local/tomcat/tomcat1/webapps/test /usr/local/tomcat/tomcat2/webapps/test vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp <%@ Seitensprache="java" import="java.util.*" Seitenkodierung="UTF-8"%> <html> <Kopf> <title>JSP test2-Seite</title> #Als test2-Seite angeben</head> <Text> <% out.println("Dynamische Seite 2, http://www.test2.com");%> </body> </html> vim /usr/local/tomcat/tomcat1/conf/server.xml #Löschen Sie die vorherige HOST-Konfiguration <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context docBase="/usr/local/tomcat/tomcat1/webapps/test" Pfad="" reloadable="true" /> </Host> /usr/local/tomcat/tomcat1/bin/shutdown.sh /usr/local/tomcat/tomcat1/bin/startup.sh vim /usr/local/tomcat/tomcat2/webapps/test/index.jsp <%@ Seitensprache="java" import="java.util.*" Seitenkodierung="UTF-8"%> <html> <Kopf> <title>JSP test3-Seite</title> #Als test3-Seite angeben</head> <Text> <% out.println("Dynamische Seite 3, http://www.test3.com");%> </body> </html> vim /usr/local/tomcat/tomcat2/conf/server.xml #Löschen Sie die vorherige HOST-Konfiguration <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context docBase="/usr/local/tomcat/tomcat2/webapps/test" Pfad="" reloadable="true" /> </Host> /usr/local/tomcat/tomcat2/bin/shutdown.sh /usr/lokal/tomcat/tomcat2/ Nginx-Lastausgleichsmodusrr Lastausgleichsmodus: Jede Anfrage wird in chronologischer Reihenfolge einem anderen Backend-Server zugewiesen. Wenn die maximale Anzahl von Fehlern überschritten wird (max_fails, Standard ist 1), wird das Fehlergewicht des Knotens innerhalb der Fehlerzeit (fail_timeout, Standard ist 10 Sekunden) 0. Nach der Fehlerzeit wird der Normalzustand wiederhergestellt. Oder wenn alle Knoten ausgefallen sind, werden alle Knoten wieder gültig und erkennen weiter. Im Allgemeinen kann rr entsprechend dem Gewicht gleichmäßig verteilt werden. least_conn Mindestanzahl an Verbindungen: Priorisieren Sie die Weiterleitung von Clientanforderungen an den Server mit den wenigsten aktuellen Verbindungen. ip_hash-Lastausgleichsmodus: Jede Anfrage wird entsprechend dem Hash-Ergebnis der Zugriffs-IP zugewiesen, sodass jeder Besucher auf einen festen Backend-Server zugreift, was das Sitzungsproblem lösen kann. Allerdings führt ip_hash zu einer ungleichmäßigen Belastung. Einige Dienste erhalten mehr Anfragen, während andere weniger Anfragen erhalten. Daher wird die Verwendung des ip_hash-Modus nicht empfohlen. Das Problem der Sitzungsfreigabe kann gelöst werden, indem die Sitzungsfreigabe des Backend-Dienstes anstelle von ip_hash von nginx verwendet wird. Fairer (Drittanbieter-)Lastausgleichsmodus: Die Anfragen werden basierend auf der Antwortzeit des Backend-Servers verteilt, wobei Anfragen mit kürzeren Antwortzeiten Vorrang erhalten. url_hash (Drittanbieter) Lastausgleichsmodus: Ähnlich wie der ip_hash-Algorithmus verteilt er jede Anfrage entsprechend dem Hash-Ergebnis der URL, sodass jede URL an denselben Backend-Server weitergeleitet wird. Dies führt jedoch auch zu dem Problem einer ungleichmäßigen Verteilung. Dieser Modus ist besser, wenn der Backend-Server zwischengespeichert ist. ZusammenfassenDamit ist dieser Artikel über die Prinzipien und die Konfiguration des Nginx-Lastausgleichs und der dynamischen und statischen Trennung abgeschlossen. Weitere relevante Inhalte zum Nginx-Lastausgleich und zur dynamischen und statischen Trennung 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:
|
>>: Facebooks nahezu perfekte Neugestaltung aller Internetdienste
XHTML ist die Grundlage des CSS-Layouts. jb51.net...
Einführung Als ich mehr über die Datenbanktheorie...
Das Eingabefeld zeigt beim Eingeben von Inhalten i...
Vorne geschrieben Im heutigen Internetbereich ist...
Grundlegende Umgebung Pagoden-Montageservice [Pyt...
herunterladen http://nginx.org/en/download.html E...
MongoDB ist plattformübergreifend und kann sowohl...
Wie lässt sich feststellen, worauf dies hinweist?...
Es gibt einige Probleme, die nicht auf Vue beschr...
Inhaltsverzeichnis Konzept Array-Destrukturierung...
Vorwort: Heute möchte ich mich per Remote-Zugriff...
Inhaltsverzeichnis Dienstprogramme: Verwendung in...
Vorwort In Bezug auf das Layout ist Gobang viel e...
Unter Linux wird Bash als Standard übernommen, wa...
Ich freue mich sehr, an dieser Folge der Kartoffe...