Vorbereitung Windows Server 2008 R2 Enterprise (2,40 GHz, 8 GB, 64 Bit, 192.168.10.212) 1. Installieren Sie Apache 2.4.4 Während des Installationsvorgangs gibt es nichts zu beachten, klicken Sie einfach immer wieder auf „Weiter“. Nach Abschluss der Installation ist der Apache-Dienst standardmäßig aktiviert. Sie können localhost oder 127.0.0.1 in den Browser eingeben und die Worte „Es funktioniert“ werden angezeigt. 2. Java-Umgebung Es gibt viele Konfigurationen für Ubuntu im Internet, daher werde ich nicht ins Detail gehen, aber denken Sie daran, JAVA_HOME und PATH zu konfigurieren 3.Tomcat-Installation Entpacken Sie es einfach in das Verzeichnis. Mein Verzeichnis ist /opt/tomcat7/. Ich habe es auf beiden Ubuntu-Systemen entpackt. Möglicherweise stoßen Sie auf das Problem unzureichender Berechtigungen. Zu diesem Zeitpunkt müssen Sie Befehle eingeben. Der einfachste und brutalste ist sudo chmod 777 directory. Aus Sicherheitsgründen sollten Sie die Autorisierung ordnungsgemäß vornehmen, daher werde ich es hier nicht erwähnen. Konfiguration starten Apache-Konfiguration 1. Öffnen Sie zunächst einige notwendige Modulkommentare (entfernen Sie einfach das #-Zeichen davor) in der Datei conf/httpd Lademodul proxy_module module/mod_proxy.so Lademodul proxy_ajp_module module/mod_proxy_ajp.so Lademodul proxy_balancer_module module/mod_proxy_balancer.so Lademodul proxy_connect_module module/mod_proxy_connect.so Lademodul slotmem_shm_module module/mod_slotmem_shm.so Lademodul lbmethod_byrequests_module module/mod_lbmethod_byrequests.so Hier erwähne ich die letzten beiden. Ich habe nur die ersten geöffnet und Apache konnte nicht gestartet werden. Ich habe das Protokoll überprüft und festgestellt, dass immer wieder der Fehler „Anbieter ‚shm‘ für ‚slotmem‘ konnte nicht gesucht werden: Ist mod_slotmem_shm geladen??“ gemeldet wurde. Ich habe nachgesehen und festgestellt, dass das Modul nicht aktiviert war. Wenn ich das #-Zeichen entfernt hätte, wäre der Fehler nicht gemeldet worden. Ein weiterer Grund ist, dass der Fehler (22) Ungültiges Argument: AH01183: Balancer kann nicht freigegeben werden gemeldet wird. Nach dem Öffnen dieses Moduls wird der Fehler nicht mehr gemeldet. 2. Entfernen Sie die Kommentarzeichen bei „Virtuelle Hosts“ in der Datei „conf/httpd“ Entfernen Sie das # vor Include 3. Fügen Sie die Konfiguration in conf/extra/httpd-vhosts.conf hinzu Lassen Sie mich zuerst meine eigene Konfiguration posten. <VirtuellerHost *:80> ServerAdmin [email protected] ProxyPass / Balancer: // Cluster / Stickysession = JSESSIONID | jsessionid nofailover = Ein ProxyPassReverse / Balancer: // Cluster / Servername 192.168.10.212 Fehlerprotokoll „logs/error.log“ CustomLog "logs/access.log" allgemein </VirtualHost> ProxyRequests aus <Proxy-Balancer://Cluster> BalancerMember ajp://192.168.10.98:8009 Auslastung=1 Route=jvm1 smax=5 max=20 ttl=120 Wiederholung=300 Timeout=15 BalancerMember ajp://192.168.10.137:8009 Auslastung=1 Route=jvm2 smax=5 max=20 ttl=120 Wiederholung=300 Timeout=15 </Proxy> ProxyPass: Ordnet den Remote-Server dem URL-Bereich des lokalen Servers zu balancer:// : Proxy-Anweisungstyp stickysession: Name der Sticky-Sitzung des Balancers. Dieser Wert wird häufig auf etwa JSESSIONID oder PHPSESSIONID eingestellt, abhängig vom Back-End-Anwendungsserver, der Sitzungen unterstützt. Wenn der Backend-Server unterschiedliche Cookie-Namen oder URL-codierte IDs verwendet (z. B. ein Servlet-Container), trennen Sie sie mit |. Der erste Teil ist für das Cookie, der zweite für den Pfad. nofailover: Wenn auf „Ein“ gesetzt, wird die Sitzung sofort beendet, wenn der Worker deaktiviert wird oder ein Fehler auftritt. Sie können diesen Wert auf „Ein“ setzen, wenn der Back-End-Server keine Sitzungsreplikation unterstützt. ProxyRequests: Wenn Sie die ProxyPass-Direktive verwenden, sollte die ProxyRequests-Direktive normalerweise deaktiviert werden. BalancerMember: Balancer-Mitglied loadfactor: Auslastungsfaktor der Arbeitseinheit. Wird für BalancerMember verwendet. Es handelt sich um eine Zahl zwischen 1 und 100, die die normalisierte Gewichtsbelastung dieses Arbeiters definiert. Route: Die Route des Workers, die im Load Balancer verwendet wird. Die Route ist ein Wert, der an die Sitzungs-ID angehängt wird. smax: Erstellen Sie nach Bedarf bis zur maximalen Anzahl von Links (Soft Maximum oder smax). Jedem Link, der die Smax-Zahl überschreitet, wird eine Lebensdauer oder TTL zugewiesen. max: Der Standardwert ist die Anzahl der Threads pro Prozess im aktuellen MPM. Im Prefork MPM ist dieser Wert immer 1 und im Worker MPM wird dieser Wert durch ThreadsPerChild gesteuert. ttl: Time To Live (TTL) für inaktive Links, die die maximale Anzahl an Verbindungen überschreiten, in Sekunden. Apache schließt während dieser Zeit alle Verbindungen, die nicht verwendet wurden. Wiederholung: Das Timeout für den Wiederholungsversuch des Thread-Pool-Workers in Sekunden. Wenn der Thread-Pool-Worker-Status für den Backend-Server ein Fehler ist, sendet Apache keine Anfragen an den Server, bis das Timeout abgelaufen ist. Dadurch kann der Backend-Server zu Wartungsarbeiten heruntergefahren und später wieder online gebracht werden. Ein Wert von 0 bedeutet, dass bei einem Fehler immer ein erneuter Versuch des Workers ohne Wartezeit durchgeführt wird. Timeout: Link-Timeout in Sekunden. Wenn nicht festgelegt, wartet Apache, bis eine Verbindung verfügbar ist. Diese Anweisung wird häufig zusammen mit dem Max-Parameter verwendet, um die Verbindungen zum Backend-Server zu begrenzen. Dies ist fast die Konfiguration, starten Sie einfach den Apache-Dienst neu. Hinweis: Wenn Sie localhost oder 127.0.0.1 eingeben, wird der Hinweis „Es funktioniert“ nicht mehr angezeigt. Stattdessen wird ein 503-Fehler gemeldet. Dies ist normal, da Apache jetzt die Lastausgleichsfunktion aktiviert und die Ziel-IP über AJP an Tomcat weitergeleitet hat, Tomcat jedoch noch nicht gestartet wurde. Tomcat-Konfiguration Nehmen wir als Beispiel den Server 192.168.10.98 Verwenden Sie Vim, um die Datei server.xml unter conf zu öffnen (wenn Sie Vim nicht kennen, verwenden Sie bitte Ihre Vorstellungskraft ╮(╯▽╰)╭). Der hier eingeführte Lastausgleich besteht darin, dass Apache über das AJP-Protokoll eine Verbindung mit Tomcat herstellt, sodass die in Apache konfigurierte Portnummer die Portnummer von AJP in Tomcat ist. Darüber hinaus müssen Sie jvmRoute in Engine konfigurieren <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> Die jvmRoute entspricht hier der Route in Apache. (Ich habe das gerade entfernt und festgestellt, dass es immer noch funktioniert. Ich finde es großartig, aber es muss konfiguriert werden.) Endlich, <Cluster-Klassenname="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> Diese Notiz öffnet An diesem Punkt ist die Konfiguration abgeschlossen. Konfigurieren Sie es entsprechend auf 192.168.10.137. Schreiben Sie eine kleine test.jsp zum Testen <%@ Seite contentType="text/html;charset=UTF-8" %> <%@ page import="java.util.*"%> <html> <Kopf> <Titel>ApacheTomcatTest</Titel> </Kopf> <Text> <% out.println("<br> SITZUNGS-ID:" + session.getId() + "</br>"); %> </body> </html> Erstellen Sie einen Balance-Ordner im Webapps-Verzeichnis von Tomcat, legen Sie test.jsp in den Ordner und starten Sie Tomcat. Geben Sie abschließend 192.168.10.212/balance/test.jsp in den Browser ein Dies ist die Verkörperung des Lastausgleichs. Wenn Sie 192.168.10.212 eingeben, wird natürlich nicht „Es funktioniert“ angezeigt, sondern die klassische Tomcat-Homepage. Übrigens basiert das oben genannte auf drei Servern Weitere Informationen zur Lastenausgleichskonfiguration von Apache+Tomcat7 erhalten Sie unter den folgenden Links. Das könnte Sie auch interessieren:
|
<<: Analyse der problematischen „Aborted“-Warnung in MySQL anhand von Fallstudien
>>: Dieser Artikel hilft Ihnen, den Quellcode von PReact10.5.13 zu verstehen
In diesem Artikelbeispiel wird der spezifische Co...
Warum müssen wir SQL optimieren? Wenn wir SQL-Anw...
Wie wird die MySQL-Select-Anweisung ausgeführt? I...
Die detaillierten Schritte zur Installation von m...
Das Wesen einer flachen Website-Struktur liegt in...
Wenn Sie MySQL installieren, wird Ihnen ein erste...
In diesem Artikel werden die Installationsschritt...
Manchmal müssen wir eine ganze Datenspalte aus ei...
Das hier erwähnte SSH heißt Security Shell. Ich g...
In diesem Artikel wird das Implementierungszeugni...
Holen Sie sich das Mongo-Image sudo docker pull m...
1. CSS alphabetisch ordnen Nicht in alphabetischer...
Inhaltsverzeichnis Lastenausgleich Klassifizierun...
Auf Mobilgeräten sehe ich häufig kreisförmige Wel...
In diesem Artikel wird der spezifische JS-Code zu...