Caddy ругался на два места. header_up X-Forwarded-For был лишним: Caddy сам
игнорирует этот заголовок из входящего запроса и подставляет реальный адрес,
защита от подделки обеспечивается его поведением по умолчанию. Пустая строка
перед глобальным блоком делала файл неформатированным по мнению caddy fmt.
Проверено caddy fmt и caddy validate на сгенерированном файле.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>