Training Module
Docker & Webserver: Apache, Nginx Reverse Proxy & HAProxy Load Balancing
In diesem 3-Stunden-Aufbaumodul baut ihr die Schicht, die in den bisherigen Docker-Kursen bewusst
ausgespart blieb: die Multi-Tier-Architektur vor der eigentlichen Anwendung. Ihr baut ein eigenes
Apache-Image auf Debian-Basis mit eigener VirtualHost-Konfiguration, richtet Nginx als
Reverse Proxy vor einer Node.js-API ein und verteilt Anfragen per HAProxy im Round-Robin-Verfahren auf
zwei Backend-Webserver, inklusive des Fixes für nicht auflösbare Backend-Namen beim Start und
veraltete Backend-Adressen, an denen erste HAProxy-Setups in der Praxis häufig scheitern. Zum Abschluss ordnet ihr Traefik als moderne,
label-gesteuerte Alternative konzeptionell ein. Die komplette Session – auch alle drei
Hands-on-Übungen – läuft vollständig lokal auf eurem eigenen Rechner (macOS/Apple Silicon geeignet),
ohne Cloud-Account, ohne öffentliche Domain und ohne Kostenwirkung.
Format
3 Stunden, live (remote oder vor Ort), Input & drei vollständige Hands-on-Blöcke
Teilnehmende
Absolvent:innen von “Docker Grundlagen” und “Docker Fortgeschritten” oder gleichwertige Vorkenntnisse in Docker Compose
Voraussetzungen
Sicherer Umgang mit docker run, docker build und Bind Mounts sowie Docker-Compose-Basiswissen (services/networks). Eine lauffähige Docker-Umgebung, idealerweise macOS/Apple Silicon. Keine Cloud-/AWS-Kostenwirkung, keine öffentliche Domain – alles läuft lokal.
Warum dieses Training für deine Organisation wirkt
Die Schicht vor der Anwendung
Alle bisherigen Docker-Kurse haben Anwendungs- und Datenbank-Container behandelt, aber nie die Schicht davor: Wer nimmt Anfragen entgegen, wer terminiert TLS, wer verteilt Last auf mehrere Instanzen? Dieses Modul schließt genau diese Lücke mit einer Technologie-Matrix und einer klaren Abgrenzung Forward- vs. Reverse-Proxy.
Vom offiziellen Image zum eigenen Betrieb
Der Bogen läuft vom offiziellen Apache-Image mit Bind Mount bis zum selbst gebauten Image mit
eigener VirtualHost-Konfiguration, aktivierten Modulen und bewusst gesetzten
Sicherheits-Direktiven – der Unterschied zwischen “es läuft” und “es ist absichtlich so
konfiguriert” wird an echtem Code sichtbar.
Der Fehler, der in der Praxis zuerst auffällt
Ein Load Balancer, der startet, während ein Backend nicht läuft, bricht mit einem DNS-Lookup-Fehler ab, und ein neu erstelltes Backend mit neuer IP-Adresse findet er nicht mehr. Ein Klassiker, an dem viele erste HAProxy-Setups scheitern. Ihr provoziert den Fehler und baut den Fix aktiv selbst ein, statt nur davon zu lesen.
Was Teilnehmende mitnehmen
- Eine Multi-Tier-Architektur und die Technologie-Matrix (Apache, Nginx, Caddy, Node/Express, HAProxy, Traefik) im Überblick einordnen – wer wofür die richtige Wahl ist.
- Forward- vs. Reverse-Proxy und das Grundprinzip der TLS-Termination als Konzept sicher erklären können.
- Ein eigenes Apache-Image auf
debian:trixie-Basis mit eigenerVirtualHost-Konfiguration bauen, inklusivea2enmod rewrite headersund bewusst gehärtetenDirectory-Direktiven (Options -Indexes,AllowOverride). - Nginx als Webserver UND als Reverse Proxy vor einer Node.js/Express-API einsetzen, mit sauberer Pfad-Aufteilung
/(Frontend) und/api/(Backend) über ein internes Compose-Netzwerk. - HAProxy als Load Balancer im Round-Robin-Verfahren vor zwei unterschiedlichen Webservern (Apache und Nginx) betreiben, inklusive des Fixes für den typischen DNS-Lookup-Fehler beim Start und veraltete Backend-Adressen.
- Traefiks Docker-Label-Discovery, Architektur und automatische Let’s-Encrypt-Integration konzeptionell einordnen und wissen, in welchen Kursen der praktische Betrieb bereits vorkommt.
- In drei vollständigen Hands-on-Übungen den kompletten Weg vom eigenen Webserver-Image bis zum lastverteilten Setup selbst gehen und gegen eine Musterlösung abgleichen.
Für wen dieses Modul ideal ist
- • Absolvent:innen von “Docker Grundlagen” und “Docker Fortgeschritten” oder Entwickler:innen mit gleichwertigen Compose-Vorkenntnissen
- • Teams, die bisher nur Anwendungs- oder Datenbank-Container betrieben haben und jetzt die vorgelagerte Webserver-/Proxy-Schicht selbst verstehen und konfigurieren wollen
- • Alle, die vor dem ersten eigenen Reverse-Proxy- oder Load-Balancer-Setup den typischen Startup-Race zwischen Proxy und Backend kennenlernen wollen, bevor er im Ernstfall auftritt
Rahmendaten
- • Dauer: 3 Stunden live (remote oder vor Ort)
- • Format: Input, Live-Demo, drei vollständige Hands-on-Übungen mit Musterlösungs-Abgleich
- • Voraussetzungen: abgeschlossene Module “Docker Grundlagen” und “Docker Fortgeschritten” oder gleichwertige Vorkenntnisse, lauffähige Docker-Umgebung (macOS/Apple Silicon geeignet), keine Cloud-Kostenwirkung, keine öffentliche Domain
Modulaufbau & Agenda
Theorie: Multi-Tier-Architektur, Technologie-Matrix & Reverse-Proxy-Grundprinzip (20 min): Forward- vs. Reverse-Proxy, TLS-Termination als Konzept, Apache/Nginx/Caddy/Node+Express/HAProxy/Traefik im Überblick.
Apache HTTP Server (40 min): offizielles Image mit Bind Mount, danach ein eigenes Image auf Debian-Basis mit eigenem Dockerfile,
VirtualHostunda2enmod.Hands-on 1: eigenes Apache-Image (in Modul 2 enthalten): eigenes Dockerfile, eigene
VirtualHost-Konfiguration, gehärteteDirectory-Direktiven.Nginx als Webserver & Reverse Proxy (55 min): eigene Nginx-Konfiguration, danach Hands-on 2: Reverse-Proxy-Setup vor einer Node.js-API per Compose.
HAProxy als Load Balancer (40 min): Round-Robin vor Apache und Nginx, Hands-on 3 inklusive Race-Condition-/DNS-Lookup-Fix beim Containerstart.
Traefik – nur Konzept (20 min): Docker-Label-Discovery, Architektur, automatische Let’s-Encrypt-Integration, Verweis auf “Docker Betrieb” und “GitLab & Container-Registry selbst hosten mit Docker”, wo Traefik bereits operativ läuft.
Fazit & Ausblick (5 min): Zusammenfassung, Einordnung in die weiteren Docker-Aufbaumodule.
Hands-on Inhalte (Auszug)
Technologie-Matrix & Reverse-Proxy-Grundprinzip
- Apache, Nginx, Caddy, Node/Express, HAProxy, Traefik anhand von Einsatzzweck, Konfigurationsmodell und Discovery-Mechanismus gegenübergestellt
- Forward-Proxy (verdeckt den Client) vs. Reverse-Proxy (verdeckt die Backends) als klare Abgrenzung
- TLS-Termination als Konzept: wo das Zertifikat liegt, was intern unverschlüsselt weiterläuft
Hands-on 1: eigenes Apache-Image
- Dockerfile auf
debian:trixie-Basis, eigenedefault.confmitVirtualHost/DocumentRoot/Directory a2enmod rewrite headersaktivieren, bevor Apache startetOptions -IndexesundAllowOverridebewusst als Sicherheits-Lernpunkt gesetzt, nicht aus dem Default übernommen- Läuft als Non-root-User
www-dataauf Port 8080 statt als root auf Port 80 – kein Container-Prozess mit mehr Rechten im Netzwerk-Stack als nötig
Hands-on 2: Nginx Reverse Proxy vor Node.js-API
- Drei Compose-Services (Proxy, Frontend, Node/Express-API) in einem internen
app-net-Netzwerk - Proxy extern auf Port 8080 erreichbar,
/routet zum Frontend,/api/zur API - Nur der Proxy-Container veröffentlicht einen Host-Port – Frontend und API bleiben intern
Hands-on 3: HAProxy Round-Robin
- Ein HAProxy-Frontend verteilt Anfragen abwechselnd auf den Apache- und den Nginx-Container aus Modul 2/3
- Fix für den DNS-Lookup-Fehler beim Start und veraltete Backend-Adressen über die
resolvers-Direktive - Beweis per wiederholtem
curl: die Antwort wechselt sichtbar zwischen beiden Backends
Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit bis zum lauffähigen Load-Balancer-Setup, Ergebnis der drei Hands-on-Übungen) und werten sie im Anschluss transparent aus. Ergebnisse veröffentlichen wir, sobald sie belastbar sind.
Explizit nicht Teil dieses Kurses
- • Caddy als eigenständiger Webserver/Reverse Proxy – wird in der Technologie-Matrix nur benannt, nicht praktisch geübt.
- • Node/Express als eigenständiges Webserver-Kapitel – die API in Hands-on 2 ist reines Backend hinter dem Nginx-Reverse-Proxy, kein Thema für sich.
- • Apache
mod_statusund Log-Auswertung persed– kein Bestandteil dieses Moduls. - • Traefik als Hands-on – wird ausschließlich konzeptionell behandelt (Docker-Label-Discovery, Architektur, Let’s-Encrypt-Automatisierung). Der praktische Betrieb ist bereits Teil von Docker Betrieb und GitLab & Container-Registry selbst hosten mit Docker.
- • Let’s-Encrypt-Produktivbetrieb mit echter, öffentlicher Domain und echtem Zertifikat – diese Session läuft vollständig lokal, ohne öffentliche Domain.
- • PHP-FPM/Nginx speziell für CMS-Workloads (WordPress, Named-Volume-Persistenz für Webroot und Datenbank) – eigenständiges Modul, siehe Docker & CMS: WordPress, PHP-FPM/Nginx und Datenpersistenz.
- • Compose- und Netzwerk-Grundlagen (
compose.yaml-Grundstruktur, Service Discovery, Bind Mounts) – vorausgesetzt aus Docker Grundlagen und Docker Fortgeschritten und hier nicht wiederholt.
Bereit, das Modul zu buchen?
Wir passen die Hands-on-Übungen auf euren Erfahrungsstand und eure Zielumgebung an.
Academy Briefing anfragen