Caddy Webserver
Caddy ist ein in Go geschriebeneer Webserver und Reverse Proxy, mit automatischer TLS-Zertifikatsverwaltung. Er kann unter anderem automatisch Zertifikate von Let's Encrypt beziehen und diese auch selbstständig erneuern. Er richtet sich an Nutzer, die einen Webserver ohne zusätzlichen Zertifikatsaufwand betreiben möchten.
Caddy wird als statisch kompilierte Binärdatei ausgeliefert und benötigt keine externen Bibliotheken. Die Installation erfolgt unter Debian und Ubuntu über das offizielle Paketrepository, unter Fedora und Red Hat über dnf und unter macOS über Homebrew. Unter Windows kann man Caddy als einzelne exe-Datei beziehen oder in WSL betreiben.
Caddy ist im Kern ein Konfigurationsverwaltungssystem, das verschiedene Anwendungen wie einen HTTP-Server, einen TLS-Zertifikatsmanager und eine PKI-Infrastruktur ausführen kann. Die Konfiguration erfolgt über eine Datei namens Caddyfile, die eine einfach lesbare Syntax verwendet. Für öffentliche DNS-Namen bezieht Caddy Zertifikate automatisch von einer ACME-Zertifizierungsstelle wie Let's Encrypt oder ZeroSSL. Für interne Namen und IP-Adressen verwaltet Caddy eine eigene lokale Zertifizierungsstelle. Neben statischen Dateien kann man Caddy als Reverse Proxy, Load Balancer und für TCP- oder SSH-Workloads einsetzen. Die Konfiguration lässt sich auch über eine JSON-API zur Laufzeit ändern, ohne den Server neu zu starten.
Die Stärken liegen im automatischen HTTPS, das ohne zusätzliche Werkzeuge wie certbot auskommt. Die Konfiguration ist deutlich kürzer als bei Nginx oder Apache. Ein Reverse Proxy für eine Subdomain umfasst oft nur zwei Zeilen.
Eine Einschränkung betrifft die Leistung unter hoher Last. In Benchmarks erreicht Caddy bei statischen Dateien und niedriger Verbindungszahl gute Werte, fällt aber bei hoher Parallelität hinter Nginx zurück. Nginx und OpenLiteSpeed liefern in den meisten Tests die besten Ergebnisse, während Caddy im Mittelfeld liegt. Ein weiterer Punkt ist die Erweiterbarkeit: Plugins werden zur Kompilierzeit eingebunden, nicht zur Laufzeit geladen. Wer ein Plugin nutzen möchte, muss Caddy mit dem entsprechenden Modul neu bauen. Das ist kein Problem für einmalige Einrichtungen, erschwert aber spontane Erweiterungen.
caddyfile (Reverse-Proxy)
meine-app.example.com {
reverse_proxy localhost:5000
}
caddyfile (File-Server)
example.com {
root * /var/www/example
file_server
}
Für Nutzer, die einen Reverse Proxy für selbstgehostete Dienste betreiben und HTTPS ohne manuellen Zertifikatsaufwand wünschen, ist Caddy eine praktische Wahl. Die Konfiguration ist lesbar und versionierbar, die Einrichtung dauerhaft minimal. Wer maximale Leistung unter hoher Parallelität benötigt oder eine sehr spezifische Modulkonfiguration ohne Neukompilierung wünscht, sollte Nginx in Betracht ziehen. Für die meisten Self-Hosting-Szenarien und kleine bis mittlere Produktionsumgebungen ist Caddy jedoch ausreichend schnell und spart gegenüber Nginx und Apache spürbar Konfigurationsaufwand.
Kommentar schreiben: