Lastverteilung und hohe Verfügbarkeit von Anwendungsservern: Tomcat, Jboss und IIS

GESCHRIEBEN VON Zevenet | 24. Februar 2017

Übersicht

Das Ziel dieses Artikels ist zu erläutern, wie die Fähigkeiten von Anwendungsservern wie erweitert werden Kater, Jboss or IIS Sie sind hochgradig web-skalierbar und hochverfügbar, um Ausfällen tolerant zu sein und die Cybersicherheit zu stärken.

Was ist Hochverfügbarkeit?

Hochverfügbarkeit ist die Qualität eines Systems oder einer Komponente, die eine hohe Betriebsleistung (normalerweise Betriebszeit) für einen längeren Zeitraum gewährleistet.

Durch die Einrichtung Anwendungsserver In hoher Verfügbarkeit lösen wir folgende Probleme:

  1. Ein einzelner Server verliert bei der Bearbeitung einer großen Anzahl von Anforderungen an Effizienz
  2. Sitzungsdaten bleiben bei einem Serverausfall erhalten
  3. Die Anwendung wird aktualisiert, ohne den Dienst einzustellen

Was ist Webwaage?

Durch die Anwendung der Web-Scale-Prinzipien auf Application Server können alle Geschäftsprozesse jeder Größe wachsen, optimiert, automatisiert und effektiv skalierbar sein.

Was ist ein Anwendungsserver?

Ein Anwendungsserver ist ein Software-Framework, das die Geschäftslogik für ein Anwendungsprogramm bereitstellt. Dies bedeutet, dass Ressourcen für die Erstellung von Webanwendungen und eine Serverumgebung für deren Ausführung verwaltet werden.
Dieser Artikel kann zwar als Leitfaden für jeden Anwendungsserver verwendet werden, wir werden jedoch einige Details zu den beliebtesten erläutern:

  1. Der Kater Software (oder auch als Apache Tomcat- oder Tomcat-Server bekannt): Eine Open-Source-Implementierung der Java Servlet-, JavaServer Pages-, Java Expression Language- und Java WebSocket-Technologien.
  2. JBoss or WildFly: der von Red Hat entwickelte Anwendungsserver.
  3. IIS (Internet Information Services): Der von Microsoft entwickelte Anwendungsserver.

Zevenet Load Balancer einrichten

mit Zevenet Load Balancer Wir können eine hohe Verfügbarkeit und Skalierbarkeit für Anwendungsserver sicherstellen. Um diese Anweisungen zu befolgen, müssen Sie eine Instanz von Zevenet Load Balancer und mehrere Instanzen von Anwendungsservern installieren. Die Umgebung, die wir beschreiben werden, ist folgende:

Anwendungsserverschema

Schritt 0: Serverreplikation

In unserem Beispiel verwenden wir zwei Backends-Server für jede Anwendung, können jedoch beliebig viele hinzufügen. Es ist wichtig, die Konsistenz zu gewährleisten, damit beim Herstellen der Verbindung zu einem Anwendungsserver immer dasselbe angezeigt wird und alle in der Anwendung gespeicherten Daten nicht verloren gehen. Um dies zu erreichen, muss die Sitzungsreplikation auf den Servern eingerichtet werden. Wir nennen das Schritt 0 da dies auf den Anwendungsservern erfolgen muss.

Kater bietet integrierte Sitzungsreplikation im Arbeitsspeicher: DeltaManager und BackUpManager. Der Hauptunterschied zwischen diesen beiden Replikatoren ist das DeltaManager ist langsamer, aber im Fehlerfall zuverlässiger.

JBoss bietet auch eine einfache Möglichkeit, die Sitzungsreplikation zu aktivieren: Markieren Sie die Anwendung als verteilbar im web.xml Descriptor.

Dienstreplikation für IIS kann mit erreicht werden DFSR (Verteilte Dateisystemreplikation).

Schritt 1: Erstellen Sie eine virtuelle IP

Sobald Zevenet Load Balancer installiert ist, muss eine neue virtuelle IP erstellt werden. Wählen Sie im Hauptmenü die Option Netzwerk-> Virtuelle Schnittstellen-> Aktionen-> Erstellen

Suchen Sie die physische Schnittstelle, an der Sie eine virtuelle IP erstellen möchten

 

Geben Sie den Namen und die Adresse Ihrer neuen virtuellen IP ein. Speichern Sie es dann, indem Sie auf die Schaltfläche "Erstellen" klicken.

Schritt 2: Erstellen Sie eine http-Farm

Eine Farm oder ein Cluster ist eine Sammlung von Computerservern, die Serverfunktionalität bereitstellen, wodurch die Funktionalität erheblich gesteigert wird. Obwohl wir die Begriffe verwenden Bauernhof und Gruppe als Synonyme gibt es einen kleinen Unterschied zwischen ihnen. Wenn man über a spricht GruppeRedundanz ist impliziert, aber wenn man von a spricht Bauernhofkann eine Redundanz vorliegen oder nicht. In unserem Fall könnten wir, da wir eine Fehlertoleranzkonfiguration haben, Farm oder Cluster als Synonyme bezeichnen.

Auf diese Weise werden wir durch die Einrichtung einer Farm von Anwendungsservern die Leistung und Ausfallsicherheit erhöhen, was für eine hohe Verfügbarkeit unerlässlich ist. Um dies zu erreichen, gehen Sie zu LSLB-> Farmen-> Erstellen

Wählen Sie einen Namen und HTTP als Profil. Wir wählen das HTTP-Profil aus, da dies die beste Option für Webdienste ist, da wir Optionen zum Wechseln von Inhalten unter derselben virtuellen IP und demselben Port anbieten können.

Zwei weitere Optionen werden angezeigt. Wählen Sie die in Schritt 1 erstellte virtuelle IP und einen Port aus (im Beispiel wählen Sie 80, da dies standardmäßig für das HTTP-Protokoll gilt) und klicken Sie auf Spare .

Schritt 3: Fügen Sie die Dienste hinzu

Die Hauptidee besteht darin, verschiedene Anwendungen von unterschiedlichen Anwendungsservern mit derselben virtuellen IP und demselben Port bereitzustellen. Sobald die Farm erstellt wurde, müssen wir sie bearbeiten, um neue Dienste hinzuzufügen. In unserem Beispiel werden wir drei Dienste einrichten. Einer für jeden Anwendungsserver. Bitte klicken Sie auf die Schaltfläche Bauernhof bearbeiten.

Mehrere Details der Farm können bearbeitet werden. In dem Beispiel werden die Standardwerte und die Dienste festgelegt.

Im obigen Screenshot haben wir Dienst hinzugefügt mit dem Servicenamen "app1".

 

Da wir auf alle drei Dienste über dieselbe Farm zugreifen, müssen wir zwischen diesen Diensten unterscheiden. Dazu können wir einen Wert für festlegen URL-Muster. In diesem Feld können Sie einen Webdienst anhand der URL ermitteln, die der Client über ein bestimmtes URL-Muster anfordert. In unserem Beispiel geben wir ein ^ / app1. *, ^ / app2. * und ^ / app3. *. Klicken Sie auf Ändern Änderungen anwenden.

Beachten Sie, dass das Backend die Adresse finden muss http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (in unserem Beispiel http://192.168.56.200/app1), um dies zu gewährleisten, muss der Kontext in Ihrer Anwendung eingerichtet sein. In unseren Beispielen werden wir den Kontext einrichten / app1 für Kater, / app2 für Jboss und / app3 für IISdem „Vermischten Geschmack“. Seine Kontext stellt eine Webanwendung dar, die auf einem bestimmten virtuellen Host ausgeführt wird. Im besonderen Fall von IISKontexte werden als Anwendungen bezeichnet.

In diesem Beispiel haben wir zwei Backends-Server pro Anwendung. Wir wählen IP, Port (Standard 8080 für Kater und JBossund 80 für IIS), Timeout und Gewicht und klicken Sie auf Backend speichern .

Wir möchten die Serverkommutierung vermeiden: Wenn wir während unserer Sitzung von einem Server zum anderen springen, wird dies zu Effizienz, Daten und sogar zu Kommunikationsverlust führen. Um dies zu vermeiden, wird der Persistenzsitzung muss konfiguriert sein Wir wählen eine Sitzung nach Sitzungs-ID. Dies bedeutet, dass wir während einer Sitzung nur eine Verbindung zu einem Server herstellen.

In den globalen Service-Parametern können Sie nun das Feld für die Persistenzsitzung in ändern COOKIE: ein gewisser Keks

Klicken Sie (sodass dort ein Haken erscheint) auf das Rechteck Jsessionid als Persistenzsitzungskennung für Tomcat und Jboss und SessionID Für IIS klicken Sie dann unten auf der Seite auf Update.

 

Jetzt müssen wir unter derselben Farm zwei weitere Dienste auf dieselbe Weise wie App2 für App1 und App2 hinzufügen, einschließlich des Persistenz-Cookies für JBoss (der Standardwert wird aufgerufen) Jsessionid) und IIS (der Standardcookie für ASP.NET ist ASPXAUTH), Sie können jedoch den von der Anwendung benötigten Cookie verwenden. Jeder Dienst in der Farm verfügt über eigene Backends, die von Farmen oder Farmdiensten gemeinsam genutzt werden können.

Beachten Sie, dass die Reihenfolge der Dienste für das richtige URL-Muster wichtig ist.

Schließlich müssen wir die Änderungen durch einen Neustart der Farm anwenden.

Herzlichen Glückwunsch! Sie haben Ihre Anwendungsserver in hoher Verfügbarkeit konfiguriert. Sie können darauf zugreifen, indem Sie eingeben http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (in unserem Beispiel http://192.168.56.200/app1, http://192.168.56.200/app2 or http://192.168.56.200/app3).

Schritt 4: Erweiterte Überprüfung

Wir werden jetzt den Farm-Guardian einrichten, um fortgeschrittene Integritätsprüfungen für die Backends durchzuführen, um sicherzustellen, dass sie betriebsbereit sind, laufen und das korrekte Verhalten der Anwendung und nicht nur eine TCP-Portprüfung. Bitte suchen Sie die Farm Guardian in Ihrem Service haben wir in Schritt 3 eingerichtet. Klicke auf Verwenden Sie FarmGuardian, um Backend-Server zu überprüfenkönnen Sie auch die Zeit zwischen check und final in der Befehl zum Überprüfen Geben Sie in das Textfeld den folgenden Befehl ein.

check_http -I HOST -w 10 -c 10 -t 10 -e 200 -p PORT -s '</html>'

Klicken Sie abschließend auf Aktualisieren am unteren Rand der Seite.

 

Der Befehl check_http testet HTTP-Verbindungen mit dem angegebenen Host. In unserem Fall verwenden wir folgende Optionen:

-ICH BEHERBERGE: Der Token-HOST wird durch die definierte Back-End-IP-Adresse ersetzt.
-w 10: Antwortzeit für den Warnstatus: 10 Sekunden
-c 10: Antwortzeit auf kritischen Status: 10 Sekunden
-t 10: 10 Sekunden vor dem Verbindungsaufbau
-e 200: erwartet den String 200 im Status der Serverantwort
-p PORT: Der Token-PORT wird durch den definierten Backend-Port ersetzt.
-s ' ': Zeichenfolge im Inhalt zu erwarten ist ' '

Dieser Befehl überprüft also im Grunde genommen, ob wir eine Antwort mit 200 OK erhalten und ob der Antwortbefehl die Zeichenfolge 'enthält. '. Wir wählen diese Zeichenfolge aus, da sie sich am Ende der Antwort befindet. Auf diese Weise können wir sicherstellen, dass wir eine vollständige Antwort von den Backends erhalten.

Schritt 5: Hohe Sicherheit

Mit Zevenet Load Balancer kann eine sichere Kommunikation problemlos eingerichtet werden. Als nächstes müssen Sie den HTTPS-Listener aktivieren: On Bearbeiten Sie die globalen Parameter der Farm Bitte ändern Sie den Farmlistener von HTTP in HTTPS und den virtuellen Port in 443.

Jetzt können Sie auf die Dienste durch Tippen zugreifen https://[Your_virtual_ip]/[yourappservice] in Ihrem Browser.

Die sichere Kommunikation läuft jetzt, aber wir können noch weiter gehen, indem wir die HTTPS-Parameter konfigurieren: Suchen Sie in den globalen Parametern der Farm nach HTTPS-Einstellungen Sektion. Wir können das ändern Ziffern zu Hohe Sicherheit.

Das Verschlüsselungsfeld wird verwendet, um eine Liste von Verschlüsselungen zu erstellen, die von SSL-Verbindungen akzeptiert werden, um die SSL-Verbindung zu sichern. Durch die Auswahl Hohe SicherheitStandardmäßig werden die Chiffren gesetzt.

kEECDH+ECDSA+AES128:kEECDH+ECDSA+AES256:kEECDH+AES128:kEECDH+AES256:kEDH+AES128:kEDH+AES256:DES-CBC3-SHA:+SHA:!aNULL:!eNULL:!LOW:!kECDH:!DSS:!MD5:!EXP:!PSK:!SRP:!CAMELLIA:!SEED

Eine weitere Option ist die HTTPS-Zertifikate verfügbar: Es wird eine Liste von Zertifikaten angezeigt, die für die aktuelle Farm ausgewählt werden soll (nur für HTTP-Farmen, was in unserem Fall der Fall ist). Wir können einen aus der Liste auswählen und auf klicken Verwenden Sie. Klicken Sie abschließend auf Ändern und starten Sie die Farm erneut, um die Änderungen zu übernehmen.

Für weitere Informationen lesen Sie bitte HTTP-Profilfarmen.

HTTPS kann auch in Ihren Anwendungsservern aktiviert werden. In diesem Fall müssen Sie die Option aktivieren HTTPS-Backends.

Teilen:

Dokumentation unter den Bedingungen der GNU Free Documentation License.

War dieser Artikel hilfreich?

Verwandte Artikel