HAProxy
Installation
Als erstes müssen Sie das HAProxy-Plugin (os-haproxy) aus der Plugin-Ansicht installieren.
Erster Schritt: Backend-Server konfigurieren
Klicken Sie auf der Seite „Servers“ auf (+), um einen Dialog zum Anlegen eines neuen Servers zu öffnen. Ein Server besteht aus einem Namen, einer IP und einem Port. Legen Sie für jeden Server, den Sie ausbalancieren wollen, einen Eintrag an.
Für ein HTTP-Backend konfigurieren Sie wie folgt:
Name | Name dieses Servers |
Beschreibung | Leer halten |
FQDN oder IP | Geben Sie die IP Ihres Servers ein |
Port | Port des Servers |
SSL | Standardeinstellung beibehalten (deaktiviert) |
SSL-Zertifikat prüfen | Standard beibehalten (markiert) |
SSL Verify CA | Behalten Sie die Voreinstellung (leer) |
Zweiter Schritt: Konfigurieren Sie ein Backend
Nun, da wir die Backend-Dienste haben, können wir ein Backend aufbauen, indem wir sie zu Gruppen von Servern kombinieren, die denselben Dienst bedienen werden. Wenn Sie z. B. einen Webservice hosten und horizontal skalieren möchten, ist jeder Server im Cluster ein „Server“, aber sie werden zu einem so genannten „Backend“ kombiniert, so dass HAProxy einen Lastausgleich zwischen ihnen durchführen kann.
Um ein neues Backend zu erstellen, klicken Sie auf das (+).
Und füllen Sie das Formular aus:
Das Feld „Balancing Algorithm“ ist wichtig zu beachten, da viele Webanwendungen von einem Zustand abhängen. Wenn Ihre Webanwendung z. B. Sitzungsdaten auf einer lokalen Festplatte speichert, können Sie bei Verwendung eines Algorithmus wie Round Robin Probleme bekommen. In einem solchen Fall muss die Anfrage desselben Clients immer an dieselben Backend-Server gesendet werden. Zum Beispiel speichert PHP standardmäßig Sitzungsdaten in Dateien, während Ruby on Rails standardmäßig Sitzungsinformationen in einem Cookie speichert. Bitte schauen Sie in der Dokumentation Ihres Web-Frameworks nach, wie dies gehandhabt wird. Betrachten Sie auch das Schreiben von Dateien als problematisch, wenn kein gemeinsamer Speicher vorhanden ist.
Aktiviert | Aktivieren Sie das Backend (markiert) |
Name | Geben Sie einen Namen für das Backend ein |
Beschreibung | Geben Sie eine optionale Beschreibung ein |
Modus | Wählen Sie den Modus HTTP, da es sich um ein HTTP-Backend handelt |
Ausgleichsalgorithmus | Wählen Sie einen Lastausgleichsalgorithmus |
Server | Wählen Sie die zuvor konfigurierten Server aus |
Dritter Schritt: Bedingungen konfigurieren
In diesem Schritt muss eine Bedingung erstellt werden, die später verwendet wird, um zu entscheiden, welcher Verkehr von einem Frontend zu welchem Backend gehört.
Um eine neue Bedingung zu erstellen, müssen Sie zu „Regeln & Prüfungen -> Bedingungen“ gehen und eine durch Klicken auf die Schaltfläche „+“ erstellen:
(Das Bild ist von der Vorgängerversion, aber es sieht immer noch so gut aus wie die gleiche)
Im geöffneten modalen Dialog erscheint das folgende Formular:
Name | Wählen Sie einen Namen für diese Bedingung |
Beschreibung | Lassen Sie das Feld leer oder wählen Sie eines für Ihre Informationen aus |
Ausdruck | Wählen Sie „Host enthält“ |
Negative Bedingung | Unkontrolliert lassen |
Wert | Geben Sie den zu vergleichenden (Teil-)Hostnamen ein |
Klicken Sie auf „Änderungen speichern“.
Vierter Schritt: Konfigurieren Sie eine Regel
Wie im vorherigen Schritt versprochen, werden die Bedingungen verwendet. Eine Regel kann mehrere Bedingungen verwenden, um zu entscheiden, welche Regel verwendet werden soll. Um eine neue Regel zu erstellen, müssen Sie zu „Rules & Checks -> Rules“ gehen und eine erstellen, indem Sie auf die Schaltfläche „+“ klicken:
(Das Bild ist von der Vorgängerversion, aber es sieht immer noch so gut aus wie die gleiche)
Ein Formulardialog öffnet sich und wir können ihn wie folgt ausfüllen:
(Das Bild ist von der Vorgängerversion, aber es sieht immer noch so gut aus wie die gleiche)
Sie können mehrere Hostnamen demselben Backend zuordnen, indem Sie mehrere ACLs hinzufügen und den logischen Operator „OR“ wählen.
Name | Wählen Sie einen Namen für diese Aktion |
Beschreibung | Sie können eine optionale Beschreibung hinzufügen |
Testtyp | Belassen Sie es bei der Voreinstellung („IF“) |
ACLs auswählen | Wählen Sie die zu verwendenden ACLs |
Logischer Operator | Behalten Sie die Voreinstellung („AND“) bei |
Aktion wählen | Wählen Sie „Backend verwenden“ |
Benutzung Server | Behalten Sie die Voreinstellung („keine“) |
Fünfter Schritt Konfigurieren Sie ein Frontend
Nun ist es fast fertig. Das Einzige, was für den HAProxy noch konfiguriert werden muss, ist ein Public Service. Ein Public Service ist eine Gruppe von gebundenen Ports, die für eingehende Verbindungen verwendet werden. Von diesem Public Service müssen wir wissen, an welches Backend die Anfrage weitergeleitet werden soll. Hierfür wird die zuvor konfigurierte Aktion benötigt. Wenn Sie mehrere Domains mit demselben Port auf einer IP haben, unterscheiden Sie diese mit Regeln! Legen Sie nicht mehrere öffentliche Dienste an. Wenn Sie z. B. nur example.org:80 und example.com:80 weiterleiten wollen, erstellen Sie nur einen Öffentlichen Dienst. Wenn Sie example.org:80, example.org:443, example.com:80 und example.com:443 weiterleiten wollen, erstellen Sie nur zwei Öffentliche Dienste, einen für Port 80 (example.org und example.com) und einen für Port 443 (example.org und example.com).
Um einen neuen öffentlichen Dienst zu erstellen, klicken Sie auf die Schaltfläche (+):
(Das Bild ist von der Vorgängerversion, aber es sieht immer noch so gut aus wie die gleiche)
Der folgende modale Dialog öffnet sich und das Frontend kann eingerichtet werden:
Wenn Sie einen Port konfigurieren, der bereits verwendet wird, ist der Konfigurationstest zwar erfolgreich, aber der Start von HAProxy schlägt lautlos fehl. Bitte stellen Sie sicher, dass der verwendete Port frei ist - insbesondere wenn die Nummer mit der Web-Konfiguration des Schulrouter Plus kollidiert.
Allgemeine Einstellungen
Aktiviert | Ausgewählt |
Name | Beliebigen Namen verwenden |
Beschreibung | Sie können es leer lassen |
Adresse anhören | Geben Sie eine oder mehrere Host:Port-Kombinationen ein, verwenden Sie 0.0.0.0:80 für HTTP über IPv4 |
Typ | Wählen Sie HTTP / HTTPS |
Standard-Backend | Behalten Sie die Voreinstellung „Keine“ bei |
Erweiterte Einstellungen
Aktivieren Sie den X-Forwarded-For-Header, damit das Backend die echte IP des Clients kennt.
Aktionen (ACLs)
Hier müssen Sie die zuvor konfigurierten Aktionen aktivieren, damit der HAProxy aufgrund der Regeln/Bedingungen arbeitet.
Alle anderen Optionen
Alle anderen Optionen auf dem Standardwert belassen
Sechster Schritt: Aktivieren und starten
Dies ist der letzte Schritt - auf der Registerkarte „Allgemein“ werden wir den Dienst nach einem Konfigurationstest aktivieren.
Dazu muss das Kontrollkästchen „Enable HAProxy“ aktiviert werden.
Aktivieren Sie in diesem Bildschirm „HAProxy aktivieren“ und klicken Sie auf „Übernehmen“. Wenn alles gut gelaufen ist, wird HAProxy gestartet. Nun müssen Sie Firewall-Regeln für den Zugriff auf Ihre HAProxy-Instanz konfigurieren.