pfSense HAProxy - Webserver optimal konfigurieren

pfSense HAProxy: ACLs definieren, z.B. "HomeAssistant_ACL" für Host-Starts. Aktionen wählen, um Backends zu steuern.

Geschrieben von

Thilo Arndt

Veröffentlicht am

11. Apr. 2026

Inhaltsverzeichnis

Wer Webserver hinter pfSense betreibt, braucht meist mehr als eine reine Portweiterleitung. Entscheidend sind saubere HTTPS-Termination, belastbares Failover und eine Logik, die Anfragen wirklich passend verteilt statt nur blind durchzureichen. Genau darum geht es hier: wie der Reverse Proxy mit Lastverteilung in pfSense im Webserver-Umfeld sinnvoll eingesetzt wird, worauf ich bei der Konfiguration achte und welche Fehler man sich besser früh spart.

Die wichtigsten Punkte auf einen Blick

  • pfSense mit HAProxy ist besonders stark, wenn mehrere Webserver, mehrere Domains oder echtes Failover gebraucht werden.
  • Für einfache Einzelfälle reicht oft NAT, aber bei TLS-Offloading, ACLs und Host-basiertem Routing wird der Reverse Proxy klar flexibler.
  • Saubere Health-Checks sind wichtiger als ein offener Port, weil nur echte Anwendungszustände Ausfälle zuverlässig erkennen.
  • Die Weitergabe der Client-IP gehört von Anfang an mitgedacht, sonst werden Logs und Zugriffskontrollen schnell ungenau.
  • Die stabile Paketvariante ist für den Alltag meist die richtige Wahl; die Entwicklungsvariante nutze ich nur für konkrete Funktionen oder Fixes.
  • Bei Webservern entscheidet oft nicht die Software, sondern das Zusammenspiel aus Zertifikaten, Firewall-Regeln, Backend-Design und Monitoring.

Was pfSense mit HAProxy im Webserver-Betrieb wirklich leistet

Netgate beschreibt das HAProxy-Paket als schnellen TCP/HTTP(S)-Load-Balancer mit ACLs für intelligentes Backend-Switching, und genau so sollte man es auch denken: nicht als bloßen Portverteiler, sondern als Steuerzentrale zwischen Internet und Webservern. In der Praxis sitzt HAProxy vor einem oder mehreren Backends, nimmt Verbindungen an, prüft Regeln wie Hostname, Pfad oder Zertifikat und entscheidet dann, welcher Webserver die Anfrage bekommt.

Der große Unterschied zur simplen Weiterleitung liegt in der Verarbeitung auf Layer 7, also auf HTTP-Ebene. Dort kann ich Domains trennen, Wartungsfenster abfangen, Anfragen nach URL oder Header lenken und SSL/TLS zentral beenden. Für Webserver ist das oft der Punkt, an dem ein Setup vom „funktioniert irgendwie“ zu „lässt sich vernünftig betreiben“ wechselt.

Wichtig ist dabei ein realistischer Blick auf die Rolle von HAProxy. Er macht einen Webserver nicht schneller, nur weil er davor sitzt. Er verteilt Last, erhöht die Verfügbarkeit und schafft mehr Kontrolle. Die eigentliche Leistung muss weiterhin auf den Backend-Servern liegen.

Genau deshalb trenne ich im Kopf immer drei Ebenen: pfSense als Firewall und Übergabepunkt, HAProxy als intelligenter Verteilungsmechanismus und die Webserver als eigentliche Applikationsschicht. Diese Trennung hilft später auch beim Debugging, weil Fehler dadurch deutlich schneller eingegrenzt werden können.

Als Nächstes lohnt sich der Blick darauf, wann ein Reverse Proxy wirklich die bessere Wahl ist und wann eine einfache Portweiterleitung noch ausreicht.

Wann ein Reverse Proxy besser ist als eine reine Portweiterleitung

Die kurze Antwort: immer dann, wenn mehr als ein Zielserver, mehr als ein Zertifikat oder mehr als eine einfache 1:1-Zuordnung im Spiel ist. Eine Portweiterleitung ist robust und leicht zu verstehen, aber sie bleibt stumpf. HAProxy kann dagegen auf Inhalte, Verfügbarkeit und Prioritäten reagieren.

Kriterium Reine Portweiterleitung HAProxy auf pfSense
Mehrere Webserver Nur mit zusätzlicher Logik sinnvoll Direkt vorgesehen
Failover bei Ausfall Manuell oder gar nicht Über Health-Checks automatisch
Mehrere Domains auf einer IP Umständlich Sehr gut über Host- oder SNI-Regeln
TLS zentral terminieren Nur begrenzt Typischer Standardfall
Regeln pro Anwendung Kaum möglich Pfad-, Host- und Header-basiert
Komplexität Niedrig Höher, aber deutlich flexibler

Für einen einzelnen statischen Webserver ohne Ausfallsicherheit ist NAT oft völlig ausreichend. Sobald aber zwei oder drei Backend-Server im Spiel sind, eine Wartung ohne Downtime laufen soll oder unterschiedliche Anwendungen unter derselben öffentlichen IP hängen, kippt die Entscheidung schnell zugunsten von HAProxy.

Ich setze den Reverse Proxy auch gern dann ein, wenn das Backend intern bleiben soll. Der Webserver hängt dann nicht direkt am WAN, sondern nur noch im internen Netz. Das reduziert die Angriffsfläche und gibt mir die Kontrolle darüber, welche Anfragen überhaupt durchkommen.

Die eigentliche Einrichtung ist kein Hexenwerk, aber ein paar Details entscheiden darüber, ob das Setup später sauber läuft oder unnötig fragil wird.

Konfiguration eines Backend-Servers für **pfSense HAProxy**. Hier wird ein Server mit der Adresse 10.0.0.4 und Port 5000 hinzugefügt.

Wie ich ein sauberes Setup aufbaue

Ich gehe bei pfSense nie direkt in die Feinkonfiguration, bevor die Grundstruktur klar ist: ein oder mehrere Frontends, definierte Backends, passende Checks und klare Firewall-Regeln. Erst wenn diese Reihenfolge stimmt, lohnt sich der Blick auf Details wie ACLs, Weiterleitungen und Zertifikate.

  1. HAProxy über das Paketmenü installieren. In pfSense läuft das über System > Packages. Für produktive Umgebungen nehme ich normalerweise zuerst die stabile Variante und wechsle nur dann auf das Entwicklungs-Paket, wenn ich eine konkrete Funktion oder einen Fix brauche.
  2. Backends mit echten Webservern anlegen. Ein Backend sollte immer auf die tatsächliche Ziel-IP und den Zielport zeigen, meist 80 oder 443. Für jede Maschine lege ich saubere Checks an, damit nicht nur der TCP-Port offen ist, sondern die Anwendung selbst als gesund gilt.
  3. Einen Health-Check auf Anwendungsebene definieren. Ein Endpunkt wie /health oder /status ist deutlich besser als ein bloßer Porttest. Bei virtuellen Hosts achte ich zusätzlich darauf, dass der passende Host-Header mitgegeben wird, sonst prüfe ich im Zweifel den falschen Webauftritt.
  4. Frontends für Port 80 und 443 bauen. HTTP nutze ich meistens nur für Redirects auf HTTPS. Auf 443 kommt das Zertifikat, und bei mehreren Domains setze ich auf SNI, damit die richtige Seite das richtige Zertifikat bekommt.
  5. Firewall und Routing strikt halten. Die Backend-Server dürfen idealerweise nur von pfSense aus erreichbar sein. Direkte Zugriffe aus dem WAN oder aus allgemeinen LAN-Netzen mache ich nur dann auf, wenn ich dafür einen sehr guten Grund habe.

Wenn ich ein neues Setup teste, trenne ich die Aufgaben bewusst: Erst muss die Grundverbindung stehen, dann der Check, dann die Weiterleitung und zuletzt das Verhalten bei Ausfall. So finde ich Fehler schneller und verhindere, dass ich mehrere Variablen gleichzeitig ändere.

In kleinen Umgebungen reichen oft zwei Backends, ein Frontend und ein sauberer Health-Check. Wer mehr als das baut, sollte den Aufwand nicht unterschätzen, denn jedes zusätzliche Zertifikat, jeder zusätzliche Hostname und jeder zusätzliche Redirect macht das System empfindlicher für Konfigurationsfehler.

Welche Verteilungsstrategie man wählt, ist der nächste Punkt, an dem viele Setups unnötig kompliziert werden.

Welche Load-Balancing-Strategie für Webserver sinnvoll ist

Die HAProxy-Dokumentation nennt unter anderem round-robin, leastconn, source, URI und hdr als typische Verfahren. Für Webserver sind nicht alle davon gleich interessant, und ich wähle sie bewusst nach Anwendungsfall statt nach Bauchgefühl.

Algorithmus Geeignet für Mein Praxis-Kommentar
roundrobin Ähnliche Webserver mit vergleichbarer Last Mein Standardstart, weil er einfach und gut vorhersagbar ist.
leastconn Längere Sessions oder ungleich schwere Requests Sinnvoll, wenn einzelne Verbindungen deutlich länger laufen als andere.
source Stabilität pro Client-IP Hilfreich, wenn ein Client möglichst beim gleichen Backend bleiben soll, aber Session-Stickiness nicht anderweitig gelöst ist.
URI Caches und pfadabhängige Verteilung Für Webserver mit stark cachebaren Inhalten interessant, eher selten mein erster Griff.
hdr Routing nach Headern wie Host oder benutzerdefinierten Werten Sehr stark bei mehreren Anwendungen hinter einer IP, wenn die Regeln sauber definiert sind.
first Möglichst kleine Servermenge aktiv halten Eher Spezialfall, etwa wenn Ressourcen geschont werden sollen.

Für klassische Webserver hinter pfSense beginne ich fast immer mit round-robin oder leastconn. Erst wenn ich merke, dass bestimmte Nutzergruppen, Sessions oder Inhalte anders behandelt werden müssen, gehe ich auf mehr Selektivität. Das spart Komplexität und reduziert die Gefahr, dass ich ein Problem durch zu viel Intelligenz erst erschaffe.

Wichtig ist auch das Verhalten beim Hochfahren neuer Systeme. Wenn ich einen frischen Backend-Server zuschalte, möchte ich nicht, dass er sofort die volle Last bekommt. Deshalb plane ich bei sensiblen Anwendungen einen sanften Start ein, damit Caches warm werden und das System sich einpendeln kann.

Mit der Auswahl des Algorithmus ist es aber noch nicht getan. Für produktive Webserver sind Sicherheitsfragen mindestens genauso wichtig.

Sicherheit, Client-IP und HTTPS ohne Reibungsverluste

Bei Webservern ist Sicherheit nicht nur eine Frage von verschlüsseltem Traffic. Entscheidend ist auch, ob die Applikation später noch weiß, wer wirklich der ursprüngliche Client war. Wenn HAProxy vor dem Backend sitzt, sieht der Webserver sonst schnell nur noch die interne IP der Firewall.

Client-IP sauber erhalten

Für HTTP setze ich in der Regel auf X-Forwarded-For. Das Backend muss diesem Header aber nur dann vertrauen, wenn die Anfrage tatsächlich von pfSense kommt. Sonst lässt sich die Quell-IP leicht fälschen. Wenn die Anwendung es unterstützt und die Kette sauber bleiben soll, ist das PROXY-Protokoll eine solide Alternative.

HTTPS bewusst entscheiden

Ich trenne hier zwei Szenarien: Entweder beende ich TLS direkt auf pfSense und spreche intern unverschlüsselt mit den Webservern, oder ich reiche die Verbindung bis zum Backend durch. Erstere Variante ist einfacher zu betreiben, weil Zertifikate zentral liegen und Redirects leichter zu kontrollieren sind. Die zweite Variante ist sinnvoll, wenn das interne Netz nicht als vertrauenswürdig gelten soll oder Compliance eine durchgehende Verschlüsselung fordert.

Bei mehreren Domains ist SNI praktisch unverzichtbar. So kann ein Frontend je nach Hostname das passende Zertifikat präsentieren. Gleichzeitig sollte man HSTS nur dann scharf schalten, wenn die HTTPS-Konfiguration wirklich stabil ist. Ein zu frühes HSTS macht kleine Fehler unnötig teuer.

Lesen Sie auch: Nginx Proxy Manager 502 - Bad Gateway schnell beheben

Firewall und Verwaltungszugriff

Die Verwaltungsoberfläche von HAProxy oder die Stats-Seite gehört für mich nie ins öffentliche Netz. Ich schränke den Zugriff auf ein Admin- oder Management-Netz ein und halte die Backend-Server nur von der Firewall aus erreichbar. Genau diese Trennung macht den Betrieb später beherrschbar, weil Angriffsfläche, Diagnose und Zuständigkeiten klarer werden.

Wenn Sicherheit und Sichtbarkeit stehen, bleiben noch die ganz typischen Stolperfallen, an denen in der Praxis erstaunlich viele Konfigurationen scheitern.

Typische Fehler, die ich in der Praxis vermeide

  • Der Health-Check prüft nur den Port. Dann meldet HAProxy den Server als gesund, obwohl die Anwendung schon intern hängt oder falsche Antworten liefert.
  • Der Host-Header fehlt. Bei virtuellen Hosts landet die Prüfung oder die Weiterleitung auf der falschen Website.
  • HTTP-zu-HTTPS-Redirects drehen sich im Kreis. Das passiert oft, wenn Frontend und Backend unterschiedliche Annahmen über das Protokoll haben.
  • Session-Stickiness wird vergessen. Login-Systeme, Warenkörbe oder CMS-Backends verhalten sich dann wechselhaft, obwohl der Load Balancer technisch sauber arbeitet.
  • Die Client-IP kommt im Backend nicht richtig an. Dann sind Logs, Rate-Limits und Audit-Trails kaum noch aussagekräftig.
  • Regeln sind zu offen. Wenn Backends oder Verwaltungsflächen zu breit erreichbar sind, verliert das Setup einen großen Teil seines Sicherheitsgewinns.
  • Es gibt kein echtes Failover-Testen. Viele Umgebungen sehen gut aus, bis der erste Server wirklich ausfällt. Dann zeigt sich schnell, ob Checks und Umschaltung wirklich greifen.

Die zwei zuverlässigsten Diagnose-Hilfen sind für mich immer Sichtbarkeit und Wiederholbarkeit: Ich beobachte das Verhalten über Logs und teste Ausfälle bewusst, statt nur auf den grünen Status zu vertrauen. Damit erkenne ich sehr schnell, ob das Problem im Proxy, im Netzwerk oder im Webserver selbst liegt.

Gerade bei pfSense lohnt es sich, Änderungen nicht im Paketmenü zu stapeln, sondern schrittweise zu testen. Erst wenn ein einzelner Host sauber antwortet, der Check sauber schlägt und die Weiterleitung korrekt greift, sollte man den nächsten Webserver dazunehmen.

Was ein belastbares Webserver-Setup heute ausmacht

Wenn ich ein pfSense-basiertes Webserver-Setup heute pragmatisch bewerte, achte ich auf vier Dinge: klare Trennung der Rollen, echte Health-Checks, saubere HTTPS-Regeln und verlässliche Logs. Alles andere ist Feinabstimmung. Ohne diese vier Punkte wird ein Reverse Proxy schnell zu einer weiteren Fehlerquelle statt zu einer Entlastung.

  • Einfach starten: ein Frontend auf 80/443, zwei Backends, ein realistischer Check.
  • Sauber absichern: Backend nur intern, Admin-Zugriff nur aus dem Management-Netz.
  • Transparenz behalten: Client-IP, Zertifikate und Logs von Anfang an korrekt mitdenken.
  • Später erweitern: erst dann zusätzliche ACLs, Algorithmen oder Sonderregeln einziehen, wenn ein echter Bedarf sichtbar ist.

Für kleine und mittlere Webserver-Umgebungen ist diese Disziplin meist wichtiger als jede exotische Zusatzfunktion. Wer das Grundgerüst sauber aufsetzt, bekommt mit pfSense und HAProxy genau das, was im Alltag zählt: kontrollierte Veröffentlichung, bessere Verfügbarkeit und weniger Stress beim nächsten Ausfall.

Häufig gestellte Fragen

HAProxy bietet intelligente Lastverteilung, Failover und zentrale TLS-Termination. Dies ist flexibler als eine einfache Portweiterleitung, besonders bei mehreren Webservern, Domains oder wenn Ausfallsicherheit gefragt ist.

Ein Reverse Proxy ist besser, sobald Sie mehr als einen Zielserver, mehrere Domains auf einer IP, TLS-Offloading oder anwendungsbasierte Regeln benötigen. Für einen einzelnen, statischen Webserver ohne besondere Anforderungen reicht oft NAT.

Für die meisten Webserver-Setups sind "roundrobin" oder "leastconn" gute Startpunkte. "Roundrobin" verteilt Anfragen gleichmäßig, während "leastconn" bei ungleich langen Sessions vorteilhaft ist. Speziellere Strategien wählt man bei Bedarf.

Nutzen Sie den "X-Forwarded-For"-Header für HTTP-Verbindungen oder das PROXY-Protokoll, falls Ihr Backend dies unterstützt. Achten Sie darauf, dass der Webserver nur Anfragen von pfSense vertraut, um IP-Spoofing zu vermeiden.

Häufige Fehler sind unzureichende Health-Checks (nur Port, nicht Anwendung), fehlende Host-Header, Redirect-Schleifen bei HTTP/HTTPS, fehlende Session-Stickiness oder unzureichende Absicherung von Backends und Verwaltungszugriffen.

Artikel bewerten

Bewertung: 0.00 Stimmenanzahl: 0

Tags:

pfsense haproxy pfsense haproxy webserver konfiguration haproxy load balancing pfsense pfsense reverse proxy einrichten

Beitrag teilen

Thilo Arndt

Thilo Arndt

Mein Name ist Thilo Arndt und ich bringe 10 Jahre Erfahrung in den Bereichen IT-Infrastruktur, Web-Technologien und Sicherheit mit. Mein Interesse an diesen Themen begann bereits in meiner Jugend, als ich die Funktionsweise von Computern und Netzwerken erkunden wollte. Diese Neugier hat sich zu einer Leidenschaft entwickelt, die mich dazu motiviert, komplexe technische Konzepte verständlich zu machen und aktuelle Trends in der Branche zu verfolgen. In meinen Beiträgen konzentriere ich mich darauf, nützliche und präzise Informationen zu liefern, die sowohl für Fachleute als auch für Interessierte zugänglich sind. Ich lege großen Wert darauf, Quellen zu überprüfen und Informationen zu vergleichen, um sicherzustellen, dass ich meinen Lesern die bestmöglichen Einblicke gebe. Dabei ist es mir wichtig, schwierige Themen zu vereinfachen und klar zu strukturieren, damit jeder die Herausforderungen und Chancen der digitalen Welt besser verstehen kann.

Kommentar schreiben