Das HAProxy ist eine Softwarelösung für das Entgegennehmen von Anfragen aus dem Internet an Ihre Webserver. Seine Funktion besteht im Weiterreichen dieser Kontaktaufnahmen gemäß einer von Ihnen gewählten Konfiguration. Diese beinhaltet Einstellungen, die die Sicherheit und die Aufteilung der Anfragen auf mehrere Server betreffen.

Wie kann man sich ein HAProxy vorstellen?

Ganz allgemein ist ein Proxy eine Schnittstelle für Kommunikation, über die eine Übermittlung von Daten abgewickelt wird. Die Funktionalität entspricht derjenigen einer Relaisstation.

Wenn Sie in Ihrer Organisation ein größeres lokales Netzwerk betreiben, haben Sie wahrscheinlich ein Proxy für den Zugriff Ihrer Mitarbeiter auf das Internet installiert. Über ein solches Proxy können Sie beispielsweise den Zugang zu bestimmten Internetseiten wie Facebook oder Youtube sperren.

Ein Reverse Proxy dient der Bewältigung des Datenverkehrs in die andere Richtung und stellt also eine Art Torwächter für Datenpakete dar, die für Server in Ihrem Netzwerk bestimmt sind.

Das HAProxy ist eine Implementierung eines solchen Reverse Proxy, wobei die Buchstaben HA für „high availability“ stehen und damit den Anspruch der Entwickler auf hohe Zuverlässigkeit klarmachen.

Verwendung des HAProxy

Die Qualitäten des Entwurfs des HAProxys kommen besonders bei Webseiten mit sehr hohen Besucherzahlen zur Geltung. Es wird unter vielen anderen von Amazon Web Services, Twitter und Reddit sowie von zahlreichen Fortune 500 Unternehmen verwendet.

Seine Anwender schätzen seine Zuverlässigkeit, die von Anfang an als Entwurfskriterium eine zentrale Rolle spielte und im Namen des HAProxy wiederzufinden ist. Seit 13 Jahren ist kein zu einem Absturz führender Fehler mehr gefunden worden. Während derselben Zeit kam es auch zu keinem Sicherheitsvorfall und das, obwohl das HAProxy jederzeit dem Zugriff aus dem Internet ausgesetzt sein muss.

Technische Details des HAProxy

Als Softwarelösung bietet sich das HAProxy als Alternative zu bestehenden Hardwarelösungen für Proxys an. Diese sind im Gegensatz zum HAProxy weniger flexibel konfigurierbar.

Die Entwicklung des HAProxys begann im Jahr 2001 und bleibt keineswegs stehen. Es werden regelmäßig neue Versionen veröffentlicht. Dabei handelt es sich um quelloffene Software, die kostenlos verfügbar und deren Quellcode für jeden einsehbar ist. Programmiert ist das HAProxy in der Programmiersprache C. Die Umsetzung entspricht den Erwartungen an ein C-Programm, nämlich dass das Endprodukt mit Speicherplatz und Rechenleistung sparsam umgeht. An Betriebssystemen stehen zahlreiche unixoide Umgebungen wie Linux, FreeBSD und Solaris zur Auswahl. In vielen Linux-Distributionen ist das HAProxy bereits enthalten.

Mehr zum Thema:
Was ist eine Blacklist?

Funktionalität

Load Balancing: Der Datenverkehr zu Webseiten mit hohen Benutzerzahlen erfordert den gleichzeitigen Einsatz von vielen Webservern. Zu den Aufgaben des HAProxys gehört die Aufteilung der eingehenden Anfragen an diese Server. Diese Aufteilung kann auf der Ebene der TCP-Protokolls oder auf der Anwendungsebene mit HTTP erfolgen. Dabei spielt nicht nur die Serverauslastung eine Rolle. Diese Aufteilung kann auch berücksichtigen, aus welchem Teil der Erde die Anfrage kommt oder auf welchem Server die Daten des entsprechenden Kunden gespeichert sind.

Logdateien: Da über ein Proxy der gesamte Internetverkehr abgewickelt wird, lassen sich aus den vom Proxy behandelten Datenpaketen detaillierte Rückschlüsse über das Verhalten Ihrer Webserver und mögliche Probleme ziehen. Diese Verkehrsdaten werden in Logdateien abgelegt und können zur Fehlersuche jederzeit konsultiert werden.

Caching: Oft angeforderte Inhalte können in einem Proxy zwischengespeichert werden. Durch das Beantworten der entsprechenden Anfragen durch das Proxy selbst wird die Belastung für Ihre Webserver vermindert.

Sicherheit: Das HAProxy kann so konfiguriert werden, dass es bestimmte Anfragen ablehnt, die Eigenschaften von Angriffen erkennen lassen. Dazu gehören etwa Aufrufe von Seiten, die auf den Webservern gar nicht existieren. Gerade bei solchen Anwendungen zeigt sich, dass eine Möglichkeit zur Konfiguration bei einem Proxy sehr wichtig ist. So möchten Sie wahrscheinlich die Anfragen von Suchmaschinen zulassen, weil diese die Grundlage für das Auffinden Ihrer Webseiten durch Ihre Kunden sind. Spam-Bots sollten aber vom Proxy blockiert werden und ganz sicher benötigen Sie ein Blockieren der Datenflut eines Denial-of-Service-Angriffs, der Ihren gesamten Webauftritt lahmlegen kann.

Ebenfalls in den Bereich der Sicherheit gehört die Handhabung von kryptografischen Anwendungen. Die Behandlung der Verbindungsaufnahmen mittels SSL oder TLS sind rechenintensiv und können deshalb Ihre Webserver stark belasten und die Antwortzeiten dementsprechend verlängern. Das HAProxy kann diese Aufgaben übernehmen und damit nicht nur die Webserver entlasten, sondern auch den Zugang zu diesen vereinfachen und systematisieren.

Was ist quelloffene Software wie das HAProxy?

Wird ein Programm nur in kompilierter Form bereitgestellt, können Sie es zwar verwenden, aber seine Funktionalität nicht oder nur mit großem Aufwand nachvollziehen. Gerade bei sicherheitskritischen Anwendungen wie einem Proxy ist das nicht wünschenswert, denn Sie möchten die Sicherheit nachprüfen können und sich davon überzeugen, dass das Programm keine Hintertüren aufweist.

Mehr zum Thema:
Was bedeutet SaaS?

Ist der Quellcode verfügbar, sind diese Überprüfungen möglich und zwar durch Sie selbst und auch durch unabhängige Experten.

In welcher Form wird das HAProxy angeboten?

Auf der Plattform Github können Sie den Quellcode des HAProxy gratis jederzeit herunterladen. Das Unternehmen HAProxy Technologies LLC entwickelt den Quellcode weiter und bietet Ihnen kostenpflichtige Zusatzleistungen an. Dazu gehören Beratungen sowie die Softwarepakete ALOHA und HAProxy Enterprise Edition, die beide einfacher zu konfigurieren und einzusetzen sind.

Letzte Artikel von Daniel Faust (Alle anzeigen)