Übersicht #
Ziel dieses Artikels ist es, zu erklären, wie Sie die Fähigkeiten von Anwendungsservern wie Kater, Jboss or IIS Indem sie für eine hohe Web-Skalierbarkeit und hohe Verfügbarkeit eingerichtet werden, um fehlertolerant zu sein, und indem die Cybersicherheit verstärkt wird.
Was ist Hochverfügbarkeit? #
Hohe Verfügbarkeit ist die Eigenschaft eines Systems oder einer Komponente, die eine hohe Betriebsleistung, normalerweise Betriebszeit, für einen längeren als den normalen Zeitraum gewährleistet.
Durch die Einrichtung Anwendungsserver Bei hoher Verfügbarkeit lösen wir die folgenden Probleme:
- Ein einzelner Server verliert an Effizienz, wenn er eine große Anzahl von Anfragen verarbeitet
- Sitzungsdaten bleiben bei einem Serverausfall erhalten
- Aktualisieren der Anwendung ohne Unterbrechung des Dienstes
Was ist Web-Scale? #
Durch die Anwendung von Web-Scale-Prinzipien auf Anwendungsserver können alle Geschäftsprozesse jeder Größe erweitert, optimiert, automatisiert und effektiv skaliert werden.
Was ist ein Anwendungsserver? #
Ein Anwendungsserver ist ein Software-Framework, das die Geschäftslogik für ein Anwendungsprogramm bereitstellt. Das heißt, es verwaltet Ressourcen zum Erstellen von Web-Anwendungen und eine Serverumgebung zu deren Ausführung.
Obwohl dieser Artikel als Leitfaden für alle Anwendungsserver verwendet werden kann, erläutern wir einige Details zu den gängigsten:
- Das Kater Software (auch bekannt als Apache Tomcat oder Tomcat-Server): eine Open-Source-Implementierung der Technologien Java Servlet, JavaServer Pages, Java Expression Language und Java WebSocket.
- JBoss or WildFly: der von Red Hat entwickelte Anwendungsserver.
- IIS (Internet Information Services): Der von Microsoft entwickelte Anwendungsserver.
Einrichten RELIANOID Lastenausgleicher #
Mit RELIANOID Lastenausgleicher Wir können eine hohe Verfügbarkeit und Skalierbarkeit für Anwendungsserver gewährleisten. Beachten Sie, dass zur Befolgung dieser Anweisungen die Installation einer Instanz von erforderlich ist RELIANOID Load Balancer und mehrere Instanzen von Anwendungsservern. Die Umgebung, die wir beschreiben werden, ist die folgende:

Schritt 0: Serverreplikation #
In unserem Beispiel verwenden wir zwei Backend-Server für jede Anwendung, aber wir können so viele hinzufügen, wie nötig. Es ist wichtig, Konsistenz sicherzustellen, damit wir beim Verbinden mit einem Anwendungsserver immer dasselbe sehen und alle in der Anwendung gespeicherten Daten nicht verloren gehen. Um dies zu erreichen, muss eine Sitzungsreplikation innerhalb der Server eingerichtet werden. Wir nennen dies Schritt 0 da dies in den Anwendungsservern erfolgen muss.
Kater bietet integrierte In-Memory-Sitzungsreplikation: DeltaManager und BackUpManagerDer Hauptunterschied zwischen diesen beiden Replikatoren besteht darin, dass DeltaManager ist langsamer, aber im Fehlerfall zuverlässiger.
JBoss bietet auch eine einfache Möglichkeit, die Sitzungsreplikation zu aktivieren: durch Markieren der Anwendung als verteilbar im web.xml Descriptor.
Servicereplikation für IIS kann mit erreicht werden DFSR (Verteilte Dateisystemreplikation).
Schritt 1: Virtuelle IP erstellen #
Sobald RELIANOID Load Balancer ist installiert, es ist erforderlich, eine neue virtuelle IP zu erstellen, wählen Sie im Hauptmenü 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 sie anschließend, 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 Serverfunktionen bereitstellen und deren Leistungsfähigkeit deutlich erhöhen. Obwohl wir die Begriffe Bauernhof und Gruppe als Synonyme, gibt es einen kleinen Unterschied zwischen ihnen. Wenn man über eine Gruppe, Redundanz ist impliziert, aber wenn man von einem Bauernhof, es kann Redundanz geben oder auch nicht. In unserem Fall, da wir eine fehlertolerante Konfiguration haben, könnten wir Farm oder Cluster synonym verwenden.
Auf diese Weise erhöhen wir durch die Einrichtung einer Farm von Anwendungsservern deren Leistung und Fehlertoleranz, 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, da es die beste Option für Webdienste ist, da wir Inhaltswechseloptionen unter derselben virtuellen IP und demselben Port bereitstellen können.
Es werden zwei weitere Optionen angezeigt. Wählen Sie die in Schritt 1 erstellte virtuelle IP und einen Port (im Beispiel wählen wir 80, da dies der Standard für das HTTP-Protokoll ist) und klicken Sie auf die Gespeichert .
Schritt 3: Dienste hinzufügen #
Die Grundidee besteht darin, verschiedene Anwendungen von verschiedenen Anwendungsservern über dieselbe virtuelle IP-Adresse und denselben Port bereitzustellen. Nachdem die Farm erstellt wurde, müssen wir sie bearbeiten, um neue Dienste hinzuzufügen. In unserem Beispiel werden wir drei Dienste einrichten. Einen für jeden Anwendungsserver. Klicken Sie dazu auf die Schaltfläche Bauernhof bearbeiten.
Verschiedene Details der Farm können bearbeitet werden. Im Beispiel werden wir die Standardwerte und die Dienste festlegen.
Im Screenshot oben haben wir Ein Dienst wurde hinzugefügt mit dem Dienstnamen „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 URL-Muster. Dieses Feld ermöglicht die Bestimmung eines Webdienstes anhand der URL, 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 werden. In unseren Beispielen werden wir den Kontext einrichten /app1 für Kater, /app2 für Jboss und /app3 für IIS. Der Kontext stellt eine Webanwendung dar, die innerhalb eines bestimmten virtuellen Hosts ausgeführt wird. Im speziellen Fall von IIS, Kontexte werden als Anwendungen bezeichnet.
In diesem Beispiel haben wir zwei Backend-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 wollen Serverwechsel vermeiden: Wenn wir während unserer Sitzung von einem Server zum anderen springen, kommt es zu Leistungs-, Daten- und sogar Kommunikationsverlusten. Um dies zu vermeiden, Persistenzsitzung muss konfiguriert werden. Wir werden uns dafür entscheiden, eine Sitzung nach Sitzungs-ID aufrechtzuerhalten. Das bedeutet, dass wir während einer Sitzung nur mit einem Server verbunden werden.
In den globalen Serviceparametern können wir nun das Feld Persistenzsitzung ändern in COOKIE: ein bestimmter Cookie
Auswählen Jsessionid als Persistenz-Sitzungskennung für Tomcat und Jboss und SessionID für IIS, und klicken Sie dann unten auf der Seite auf Aktualisieren.
Jetzt müssen wir unter derselben Farm zwei weitere Dienste auf die gleiche Weise wie app2 für app1 und app2 hinzufügen, einschließlich des Persistenzcookies für JBoss (der Standard heißt Jsessionid) und IIS (das Standardcookie für ASP.NET ist ASPXAUTH), aber Sie können das von der Anwendung benötigte Cookie verwenden. Jeder Dienst in der Farm hat seine eigenen Backends, die zwischen Farmen oder Farmdiensten gemeinsam genutzt werden können.
Beachten Sie, dass die Reihenfolge der Dienste wichtig ist, um dem richtigen URL-Muster zu entsprechen.
Abschließend müssen wir die Änderungen durch einen Neustart der Farm anwenden.
Herzlichen Glückwunsch! Sie haben Ihre Anwendungsserver hochverfügbar konfiguriert. Sie können darauf zugreifen, indem Sie Folgendes 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 Prüfung #
Wir werden nun den Farm Guardian einrichten, um erweiterte Integritätsprüfungen der Backends durchzuführen und sicherzustellen, dass diese betriebsbereit sind und das korrekte Verhalten der Anwendung aufweisen, nicht nur eine TCP-Port-Prüfung. Bitte suchen Sie den Farmwächter innerhalb Ihres Dienstes, den wir in Schritt 3 eingerichtet haben. Klicken Sie auf Verwenden Sie FarmGuardian, um Backend-Server zu überprüfenkönnen Sie auch die Zeit zwischen Prüfung und abschließend ändern, in der Zu prüfender Befehl Geben Sie in das Textfeld den folgenden Befehl ein.
check_http -I HOST -w 10 -c 10 -t 10 -e 200 -p PORT -s ' '
Klicken Sie abschließend unten auf der Seite auf „Aktualisieren“.
Der Befehl check_http testet HTTP-Verbindungen mit dem angegebenen Host. In unserem Fall verwenden wir die folgenden Optionen:
-ICH BEHERBERGE: Das Token HOST wird durch die definierte Backend-IP-Adresse ersetzt.
-w 10: Reaktionszeit bis zum Warnstatus: 10 Sekunden
-c 10: Reaktionszeit bei kritischem Status: 10 Sekunden
-t 10: 10 Sekunden, bevor die Verbindung abläuft
-e 200: erwartet den String 200 im Status der Serverantwort
-p PORT: Der Token-PORT wird durch den definierten Backend-Port ersetzt.
-S ' ': im Inhalt zu erwartender String ist ' '
Dieser Befehl überprüft im Wesentlichen, ob wir eine 200 OK-Antwort erhalten und ob der Antwortbefehl die Zeichenfolge ' '. Wir wählen diese Zeichenfolge aus, da sie am Ende der Antwort steht. Auf diese Weise können wir garantieren, dass wir von den Backends eine vollständige Antwort erhalten.
Schritt 5: Hohe Sicherheit #
Sichere Kommunikation lässt sich ganz einfach einrichten mit RELIANOID Load Balancer, daher besteht der nächste Schritt darin, den HTTPS-Listener zu aktivieren: Globale Farmparameter bearbeiten Bildschirm, ändern Sie bitte den Farm-Listener von HTTP auf HTTPS und den virtuellen Port auf 443.
Jetzt können Sie auf die Dienste zugreifen, indem Sie Folgendes eingeben: 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 innerhalb der globalen Farmparameter den HTTPS-Einstellungen Abschnitt. Wir können die Ziffern zu Hohe Sicherheit.
Das Feld „Chiffren“ wird verwendet, um eine Liste der von SSL-Verbindungen akzeptierten Chiffren zu erstellen, um die SSL-Verbindung zu stärken. Durch Auswahl von Hohe Sicherheit, wir werden die Chiffren standardmäßig festlegen.
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 mit Zertifikaten angezeigt, die für die aktuelle Farm ausgewählt werden können (nur für HTTP-Farmen, wie in unserem Fall). Wir können eines aus der Liste auswählen und auf klicken Speichern. Klicken Sie abschließend auf Ändern und starten Sie die Farm neu, um die Änderungen anzuwenden.
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.










