502 zuordnen: Proxy Manager selbst oder ein HTTP-Proxy davor

Ein 502 hat zwei moegliche Absender, und sie sehen gleich aus:

  - Der Proxy Manager selbst. Sein nginx steht, der Dienst dahinter
    nicht. Nachgemessen: nach einem Neustart antwortet die Schnittstelle
    erst nach rund zehn Sekunden mit 200 - davor kommen 000, dann 502.
  - Ein HTTP-Proxy davor, der localhost:81 von SEINEM Rechner aus zu
    erreichen versucht und scheitert.

Unterscheiden laesst sich das an der Server-Kopfzeile: der Proxy Manager
nennt sich "openresty", ein Proxy traegt sich zusaetzlich mit "Via:"
ein. Beide Faelle nachgestellt und die Kopfzeilen abgenommen.

Die Meldung wertet das jetzt aus und sagt im ersten Fall "kurz warten,
er startet noch", im zweiten "das war nicht der Proxy Manager, pruefe
noproxy". Vorher stand dort pauschal "Serverfehler" mit einem Verweis
auf noproxy - der im haeufigeren Fall in die falsche Richtung zeigte.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-21 00:03:32 +02:00
co-authored by Claude Opus 5
parent 62ccafbbd1
commit 20c773c9c4
3 changed files with 80 additions and 8 deletions
+20
View File
@@ -1222,8 +1222,28 @@ Die andere Richtung sieht so aus:
|---|---|---|
| `400`/`401` | Der Proxy Manager lehnt ab | Konto/Kennwort in der `.env`, oder das Konto gibt es nicht → `npm-reset` |
| `000` | gar keine Antwort | Container aus? Port frei? – der Befehl prüft beides und sagt, welches zutrifft |
| `502` | zwei mögliche Absender – siehe unten | die Zeile `Antwortete:` verrät welchen |
| `5xx` + HTML | etwas anderes antwortet | meist der HTTP-Proxy; die erste Zeile der HTML-Antwort wird mit angezeigt |
**Ein `502` hat zwei Absender**, und sie fühlen sich gleich an. Unterscheiden
lassen sie sich an der `Server`-Kopfzeile, die die Meldung mit ausgibt:
| `Antwortete:` | wer es war | was zu tun ist |
|---|---|---|
| `openresty` (ohne `Via:`) | **der Proxy Manager selbst** – nginx steht, der Dienst dahinter nicht | meist startet er noch: nach einem Neustart dauert es rund **zehn Sekunden**, bis die Schnittstelle antwortet. Sonst `logs` bzw. `proxy restart` |
| `squid`, `Via: …` o. ä. | **ein HTTP-Proxy davor** | `noproxy` – die Anfrage ging gar nicht bis zum Proxy Manager |
Der zweite Fall ist tückisch, weil der Proxy den 502 erzeugt, während er
`localhost:81` **von seinem eigenen Rechner aus** zu erreichen versucht. Mit
einem einzigen Aufruf auseinanderzuhalten:
```bash
curl -si --noproxy '*' http://localhost:81/api/tokens -X POST \
-H 'Content-Type: application/json' -d '{}' | head -3
```
Kommt damit etwas anderes heraus als ohne `--noproxy`, war der Proxy dazwischen.
Antwortet HTML statt JSON, steht es ausdrücklich da – samt erster Zeile, an der
man erkennt, wer da geantwortet hat: