1. Implementierungsprinzip des Nginx-Lastausgleichs1. 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. 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 Nginx1. 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. 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 |
#!/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
2. Stellen Sie zwei Tomcat-Anwendungsserver bereit
#!/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
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>
#Ä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
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>
#Ä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
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
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
4. Zugangstest
Testen Sie den statischen Seiteneffekt. Browserzugriff http://192.168.109.7/
Browserzugriff http://192.168.109.7/long.jpg
Testen Sie den Lastausgleichseffekt, aktualisieren Sie den Browser kontinuierlich, um den Browserzugriff auf http://192.168.109.7/test/index.jsp zu testen
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!
<<: 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)
Inhaltsverzeichnis 1. Einführung in SQL-Injection...
Voraussetzung ist die Eingabe der Bewertungsdaten...
Vorwort Als wir das Pferd geschrieben haben, wuss...
Installation Die erforderlichen Unterlagen finden...
Hinweis: In diesem Artikel geht es um die grundle...
Was ist der Zweck dieses Satzes? Code kopieren Der...
Inhaltsverzeichnis Szenarioanalyse Entwicklung Zu...
Verstehen Sie zunächst die Funktion updatexml() U...
Laden Sie zunächst das Diagramm herunter 1. Deins...
Ich habe ECharts schon einmal bei einem Projekt v...
Ich habe vor Kurzem ein Testserver-Betriebssystem...
einführen In diesem Kapitel wird hauptsächlich de...
Das Protokoll der Ressourcendatei weglassen Es wi...
1. RTMP Das RTMP-Streaming-Protokoll ist ein von ...
Vorwort Komponenten sind etwas, das wir sehr häuf...