Absturzschleife des Proxy Managers: IP-Bereich-Abruf abschaltbar

Das Containerprotokoll eines Kunden zeigte, was hinter dem 502 steckte:
der Dienst stuerzt in einer Schleife ab.

  [IP Ranges] Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
  Uncaught Error: Client network socket disconnected before secure TLS
                  connection was established
  ... node --abort_on_uncaught_exception ... index.js
  Starting backend ...          [und das immer wieder]

Beim Start holt der Proxy Manager IP-Bereiche von AWS und Cloudflare -
gebraucht wird das nur fuer Zugriffslisten mit deren Adressbereichen,
auf einem internen Server also nie. Der Code faengt Fehler dabei ab,
dieser kommt aber asynchron vom TLS-Socket und laeuft am catch vorbei;
weil node mit --abort_on_uncaught_exception laeuft, bricht der Prozess
ab, s6 startet neu, und nginx davor antwortet durchgehend mit 502.

Am Abbild nachgesehen und ausprobiert:

  - IP_RANGES_FETCH_ENABLED=false verhindert den Abruf; im Protokoll
    steht dann "IP Ranges fetch is disabled by environment variable",
    das Backend laeuft.
  - Scheitert der Abruf sauber (DNS-Fehler, Verbindung abgelehnt), faengt
    der Code ihn ab und der Dienst laeuft weiter - der Absturz haengt
    also wirklich an der gekappten TLS-Verbindung.
  - initTimer() laeuft unabhaengig vom Schalter und versucht es alle
    sechs Stunden erneut. Das steht als Hinweis samt extra_hosts in der
    README.

Neu: NPM_IP_RANGES_FETCH, Vorgabe false. Und die Fehlermeldung erkennt
den Fall selbst - sie zaehlt Startversuche und Ausnahmen im
Containerprotokoll und nennt den Schalter, statt den Benutzer weiter auf
"startet noch" warten zu lassen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-21 00:21:10 +02:00
co-authored by Claude Opus 5
parent 4078a9c1a6
commit 58308264c6
5 changed files with 167 additions and 5 deletions
+7
View File
@@ -140,6 +140,13 @@ NPM_ADMIN_PORT=81
# 127.0.0.1 trotzdem ueber den Proxy. Dann hier auf localhost stellen.
NPM_API_HOST=127.0.0.1
# Holt der Proxy Manager beim Start IP-Bereiche von AWS und Cloudflare?
# Gebraucht wird das nur fuer Zugriffslisten mit deren Adressbereichen.
# Vorgabe hier: false. In Netzen, die TLS aufbrechen oder Verbindungen
# kappen, stirbt der Dienst sonst an einer unbehandelten Ausnahme und
# startet endlos neu - sichtbar nur als "502 Bad Gateway".
NPM_IP_RANGES_FETCH=false
# =====================================================================
# TERMINAL-BROWSER (lokale Bedienung des Proxy Managers)
# Fuer den Fall, dass Port 81 von aussen nicht erreichbar ist.