From fd96126199bf0a110b7382ff133a662e38e70f48 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sun, 20 Sep 2026 17:50:02 +0200 Subject: [PATCH] README: advanced_config war als "Vorgabe unten" angekuendigt, stand aber nirgends Die proxy-Kommandos waren dokumentiert, in der Optionstabelle verwies "--advanced" aber auf eine Erklaerung, die es nicht gab. Jetzt steht der Vorgabeblock woertlich in Abschnitt 10.2, mit einer Begruendung je Zeile: client_max_body_size 0 grosse Agent-Uploads und Bakery-Pakete proxy_read_timeout 300s lange laufende Checkmk-Ansichten X-Forwarded-Proto sonst erzeugt Checkmk http://-Verweise X-Forwarded-For sonst steht nur die Proxy-Adresse im Log Dazu, dass --advanced den Block ERSETZT (nicht ergaenzt), dass --advanced '' ihn leert, und dass der Assistent immer die Vorgabe nimmt. Gegengeprueft, dass der Block die JSON-Kodierung unbeschadet uebersteht: die erzeugte Nutzlast ist gueltiges JSON, advanced_config kommt mit vier Zeilen an, und $scheme sowie $proxy_add_x_forwarded_for bleiben als nginx-Variablen erhalten - sie werden von der Shell nicht ersetzt. Beim Live-Test gegen die echte Instanz war genau dieser Vorgabeblock im Einsatz; dass nginx ihn geladen hat, zeigte sich daran, dass 443 danach antwortete und 80 dorthin umleitete. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 35 ++++++++++++++++++++++++++++++++++- README_en.md | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 558ca66..957446c 100644 --- a/README.md +++ b/README.md @@ -1116,9 +1116,42 @@ Optionen von `proxy add`: | `--scheme http\|https` | `http` | Schema zum Ziel | | `--cert self\|letsencrypt\|none` | `self` | Zertifikat | | `--update` | – | vorhandenen Eintrag ersetzen | -| `--advanced TEXT` | Vorgabe unten | eigener nginx-Abschnitt | +| `--advanced TEXT` | siehe unten | eigener nginx-Abschnitt | | `--no-force-ssl`, `--no-http2`, `--no-websockets`, `--no-block-exploits` | – | Abschalter | +#### Der `advanced_config`-Abschnitt + +Ohne `--advanced` setzt `proxy add` diesen Block – dieselben vier Zeilen, die +man sonst im Reiter **Advanced** von Hand einträgt: + +```nginx +client_max_body_size 0; +proxy_read_timeout 300s; +proxy_set_header X-Forwarded-Proto $scheme; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +``` + +Wozu die vier: + +| Zeile | Grund | +|---|---| +| `client_max_body_size 0` | hebt die Größenbegrenzung auf – sonst scheitern große Agent-Uploads und Bakery-Pakete | +| `proxy_read_timeout 300s` | lange laufende Checkmk-Ansichten laufen sonst in eine Zeitüberschreitung | +| `X-Forwarded-Proto` | Checkmk erzeugt sonst `http://`-Verweise hinter dem HTTPS-Proxy | +| `X-Forwarded-For` | im Checkmk-Zugriffsprotokoll steht sonst nur die Proxy-Adresse statt der echten Client-IP | + +Ersetzen (nicht ergänzen) lässt sich der Block mit `--advanced`: + +```bash +sudo ./scripts/cmk-manage.sh proxy add --domain checkmk.example.com \ + --advanced 'client_max_body_size 0; +proxy_read_timeout 600s;' +``` + +Mit `--advanced ''` bleibt das Feld leer. Der Assistent in der Oberfläche +verwendet immer die Vorgabe oben; wer etwas anderes braucht, nimmt die +Kommandozeile oder passt den Eintrag anschließend im Proxy Manager an. + In der Oberfläche liegt derselbe Ablauf unter **proxy → „Proxy-Host anlegen"** (Name → Zielport → Zertifikat) sowie unter **Einstellungen → NGINX Proxy Manager → „>> Proxy-Hosts anlegen/verwalten"**. diff --git a/README_en.md b/README_en.md index c80fef6..9ecca35 100644 --- a/README_en.md +++ b/README_en.md @@ -1121,6 +1121,39 @@ Options for `proxy add`: | `--advanced TEXT` | see below | custom nginx block | | `--no-force-ssl`, `--no-http2`, `--no-websockets`, `--no-block-exploits` | – | switches | +#### The `advanced_config` block + +Without `--advanced`, `proxy add` sets this block – the same four lines you +would otherwise type into the **Advanced** tab by hand: + +```nginx +client_max_body_size 0; +proxy_read_timeout 300s; +proxy_set_header X-Forwarded-Proto $scheme; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +``` + +What each is for: + +| Line | Reason | +|---|---| +| `client_max_body_size 0` | removes the size limit – large agent uploads and bakery packages fail otherwise | +| `proxy_read_timeout 300s` | long-running Checkmk views would otherwise time out | +| `X-Forwarded-Proto` | without it Checkmk generates `http://` links behind the HTTPS proxy | +| `X-Forwarded-For` | without it the Checkmk access log only shows the proxy address instead of the real client IP | + +`--advanced` replaces the block (it does not append): + +```bash +sudo ./scripts/cmk-manage.sh proxy add --domain checkmk.example.com \ + --advanced 'client_max_body_size 0; +proxy_read_timeout 600s;' +``` + +`--advanced ''` leaves the field empty. The wizard in the interface always uses +the default above; if you need something else, use the command line or adjust +the entry in the Proxy Manager afterwards. + In the interface the same flow is under **proxy → "Proxy-Host anlegen"** (name → target port → certificate) and under **Einstellungen → NGINX Proxy Manager → ">> Proxy-Hosts anlegen/verwalten"**.