Reporting API für Caddy konfigurieren

Report-To, NEL und Reporting-Endpoints auf Caddy einrichten — per header-Direktive im Caddyfile und reverse_proxy für das Report-Backend.

Caddy · Schritt für Schritt

Reporting API auf Caddy

Caddy setzt Report-To, NEL und Reporting-Endpoints über die header-Direktive im Caddyfile. Der Vorteil gegenüber Nginx und Apache: Caddy unterstützt Backticks für JSON-Werte — kein manuelles Escaping nötig. Für den Report-Endpoint nutzen Sie reverse_proxy, um Reports an ein Backend weiterzuleiten.

1 Schritt 1 von 2

Header im Caddyfile setzen

Fügen Sie die drei Reporting-Header in Ihren Site-Block im Caddyfile ein. Verwenden Sie Backticks für JSON-Werte — Caddy parsed sie korrekt ohne zusätzliches Escaping.

Caddyfile Reporting
# Caddyfile — Reporting API Header
ihre-domain.de {
    header Report-To `{"group":"default","max_age":86400,"endpoints":[{"url":"https://ihre-domain.de/api/reports"}]}`
    header Reporting-Endpoints `default="https://ihre-domain.de/api/reports"`
    header NEL `{"report_to":"default","max_age":86400}`
}
Backticks statt Escaping

Caddy unterstützt Backticks (`) für Strings mit Sonderzeichen. Innerhalb der Backticks werden Anführungszeichen und andere Zeichen literal behandelt — kein Backslash-Escaping nötig.

2 Schritt 2 von 2

Report-Backend per reverse_proxy anbinden

Caddy kann Reports nicht selbst verarbeiten. Richten Sie einen reverse_proxy-Block ein, der Reports an Ihr Backend weiterleitet. Wenn Sie einen externen Reporting-Service nutzen, entfällt dieser Schritt.

Caddyfile Proxy
# Report-Endpoint an Backend weiterleiten
ihre-domain.de {
    # Reporting-Header
    header Report-To `{"group":"default","max_age":86400,"endpoints":[{"url":"https://ihre-domain.de/api/reports"}]}`
    header Reporting-Endpoints `default="https://ihre-domain.de/api/reports"`
    header NEL `{"report_to":"default","max_age":86400}`

    # Report-Endpoint an Backend
    handle /api/reports* {
        reverse_proxy localhost:3000
    }

    # Normale Requests
    handle {
        root * /var/www/html
        file_server
    }
}
Konfiguration neu laden:
caddy reload --config /etc/caddy/Caddyfile

Wie steht Ihre Domain bei Reporting API?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.

Häufig gestellte Fragen

Wie escape ich JSON in der Caddy header-Direktive?

Caddy unterstützt Backticks (`) für mehrzeilige Strings und Strings mit Sonderzeichen. Verwenden Sie Backticks um den gesamten JSON-Wert: header Report-To `{"group":"nel","max_age":86400,...}`. Das ist sicherer als manuelles Escaping.

Kann Caddy Reports direkt verarbeiten?

Nein. Caddy ist ein Webserver und kann keine JSON-Reports verarbeiten. Nutzen Sie reverse_proxy, um Reports an ein Backend (Node.js, Go, Python) weiterzuleiten, oder verwenden Sie einen externen Reporting-Service.

Brauche ich ein separates Backend für den Report-Endpoint?

Ja. Caddy leitet Reports über reverse_proxy an Ihr Backend weiter. Alternativ nutzen Sie einen externen Service wie Report URI — dann zeigt der Endpoint in den Headern direkt auf den externen Service und Caddy muss keine Reports weiterleiten.

Welche Browser unterstützen die Reporting API?

Report-To, NEL und Reporting-Endpoints werden ausschließlich von Chromium-basierten Browsern unterstützt — Chrome 70+, Edge 79+ und Opera. Firefox und Safari implementieren keinen dieser Header.

Wird die Caddy-Konfiguration automatisch neu geladen?

Nein. Nach Änderungen am Caddyfile müssen Sie Caddy neu laden: caddy reload --config /etc/caddy/Caddyfile. Caddy validiert die Konfiguration automatisch vor dem Reload und verhindert fehlerhafte Konfigurationen.