Rocky Linux: Caddy Reverse Proxy mit Docker

In der modernen Webentwicklung und Serveradministration spielen Reverse Proxies eine zentrale Rolle. Sie ermöglichen es, den Datenverkehr effizient zu verteilen, die Sicherheit zu erhöhen und die Leistung zu optimieren. Caddy hat sich dabei als leistungsstarker und benutzerfreundlicher Reverse Proxy etabliert. In diesem Artikel erfährst du, wie du Caddy als Reverse Proxy mit Docker auf Rocky Linux 9.4 einrichtest und konfigurierst.

Was ist Caddy?

Caddy ist ein moderner, Open-Source-Webserver, der sich durch seine Einfachheit und automatische HTTPS-Unterstützung auszeichnet. Im Gegensatz zu traditionellen Webservern wie Apache oder Nginx, bietet Caddy eine intuitive Konfiguration und automatische TLS-Zertifikatsverwaltung. Seit seiner Einführung im Jahr 2015 hat sich Caddy stetig weiterentwickelt und ist heute bei Version 2.x angelangt.

Einige Hauptmerkmale von Caddy sind:

  • Automatisches HTTPS mit Let’s Encrypt
  • HTTP/2 und HTTP/3 Unterstützung
  • Einfache, JSON-basierte Konfiguration
  • Modulare Architektur mit zahlreichen Erweiterungsmöglichkeiten
  • Integrierter Reverse Proxy

Voraussetzungen

Bevor du mit der Installation und Konfiguration von Caddy beginnst, stelle sicher, dass folgende Voraussetzungen erfüllt sind:

  • Ein Server mit Rocky Linux 9.4 (Minimal-Installation ohne Desktop)
  • Root-Zugriff oder sudo-Berechtigungen
  • Eine aktive Internetverbindung
  • Grundlegende Kenntnisse in der Linux-Kommandozeile

Wenn du Rocky Linux 9.4 noch nicht installiert hast, kannst du es von der offiziellen Website (https://rockylinux.org/) herunterladen und installieren. Wähle bei der Installation die Option „Minimal Install“, um eine schlanke Basis für dein System zu erhalten.

System aktualisieren

Bevor du mit der Installation von Docker und Caddy beginnst, ist es wichtig, dein System auf den neuesten Stand zu bringen. Öffne dazu ein Terminal und führe folgende Befehle aus:

Bash
sudo dnf update -y
sudo dnf upgrade -y

Diese Befehle aktualisieren die Paketlisten und installieren alle verfügbaren Updates für dein System.

Docker installieren

Docker ist eine Plattform zur Containerisierung von Anwendungen, die es dir ermöglicht, Caddy in einer isolierten Umgebung zu betreiben. Um Docker auf Rocky Linux 9.4 zu installieren, folge diesen Schritten und füge das offizielle Docker-Repository hinzu:

Bash
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Installiere Docker und die benötigten Abhängigkeiten:

Bash
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Starte den Docker-Dienst und aktiviere ihn für den automatischen Start beim Systemboot:

Bash
sudo systemctl start docker
sudo systemctl enable docker

Füge deinen Benutzer zur Docker-Gruppe hinzu, um Docker ohne sudo-Rechte ausführen zu können:

Bash
sudo usermod -aG docker $USER

Melde dich nach diesem Schritt ab und wieder an, damit die Gruppenänderungen wirksam werden.

Caddy-Konfiguration vorbereiten

Bevor du Caddy in einem Docker-Container startest, musst du eine Konfigurationsdatei erstellen. Diese Datei, genannt „Caddyfile“, definiert das Verhalten deines Reverse Proxys.

Erstelle ein Verzeichnis für deine Caddy-Konfiguration:

Bash
mkdir -p ~/caddy-config
cd ~/caddy-config

Erstelle die Caddyfile mit einem Texteditor deiner Wahl, z.B. nano:

Bash
nano Caddyfile

Füge folgenden Inhalt in die Caddyfile ein:

TypeScript
{
    email your-email@example.com
}

example.com {
    reverse_proxy localhost:8080
}

api.example.com {
    reverse_proxy localhost:3000
}
Ersetze "your-email@example.com" durch deine E-Mail-Adresse und "example.com" sowie "api.example.com" durch deine tatsächlichen Domains. 

Die reverse_proxy-Anweisungen leiten den Verkehr an die angegebenen lokalen Ports weiter.

Speichere die Datei und verlasse den Editor (in nano: Strg+X, dann Y, dann Enter).

Caddy mit Docker starten

Bash
docker run -d \
  --name caddy \
  -p 80:80 \
  -p 443:443 \
  -v $HOME/caddy-config/Caddyfile:/etc/caddy/Caddyfile \
  -v caddy_data:/data \
  caddy:latest

Dieser Befehl startet einen Caddy-Container mit folgenden Eigenschaften:

  • Der Container läuft im Hintergrund (-d)
  • Er ist unter dem Namen „caddy“ erreichbar
  • Die Ports 80 und 443 werden auf den Host weitergeleitet
  • Die Caddyfile wird in den Container gemountet
  • Ein Docker-Volume „caddy_data“ wird für persistente Daten verwendet

Firewall konfigurieren

Damit dein Caddy Reverse Proxy von außen erreichbar ist, musst du die Firewall entsprechend konfigurieren. Rocky Linux 9.4 verwendet standardmäßig firewalld. Öffne die Ports 80 und 443 mit folgenden Befehlen:

Bash
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Ersetze "example.com" durch deine tatsächliche Domain. Wenn alles korrekt konfiguriert ist, solltest du eine HTTP 200 OK Antwort erhalten.

Fazit

Du hast nun erfolgreich Caddy als Reverse Proxy mit Docker auf Rocky Linux 9.4 eingerichtet. Diese Konfiguration bietet dir eine flexible und sichere Möglichkeit, deine Webanwendungen zu verwalten und zu schützen. Caddy kümmert sich automatisch um die SSL/TLS-Verschlüsselung, sodass du dich auf die Entwicklung deiner Anwendungen konzentrieren kannst.

Denk daran, regelmäßig Sicherheitsupdates für Rocky Linux, Docker und Caddy durchzuführen, um dein System auf dem neuesten Stand zu halten.

Mit dieser Einrichtung bist du gut gerüstet, um moderne Webanwendungen zu hosten und zu verwalten.

Kommentar verfassen