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.
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.
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 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}`
} 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.
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.
# 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
}
} 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.