feat(backends): WebSocket-Toggle pro Backend

Migration 0017 fügt backends.websocket BOOL. Wenn aktiv emittiert der
HAProxy-Renderer `timeout tunnel 1h` IM Backend-Block; defaults-Section
hat den Global-Timeout dafür verloren. Backends ohne WS-Workload bleiben
bei strikten HTTP-Timeouts (Connection-Hygiene). Migrations-Heuristik
schaltet vm-pool/proxmox/console/vnc-Namen auto auf true damit Proxmox-
Konsole nach Deploy weiterhin durchläuft.

UI: Switch im Backend-Modal + WS-Tag in der Übersichtstabelle.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Debian
2026-05-11 21:51:09 +02:00
parent da35097041
commit 26f321de9d
13 changed files with 108 additions and 24 deletions

View File

@@ -21,10 +21,9 @@ defaults
timeout client 60s
timeout server 60s
timeout http-request 10s
# WebSocket/long-poll: nach HTTP-Upgrade greift `timeout tunnel`
# statt client/server-timeout. 1h hält Proxmox-noVNC + VS-Code-
# SSH-Tunnel + andere langlebige Streams offen.
timeout tunnel 1h
# timeout tunnel wird PER BACKEND aktiviert (websocket-Flag),
# damit nur WS-Workloads die lange Idle-Toleranz haben und normale
# HTTP-Backends saubere Connection-Hygiene behalten.
# ── Public :80 ─────────────────────────────────────────────────────────
# ACME-01 challenges proxy to edgeguard-api which serves the webroot.
@@ -91,6 +90,9 @@ backend api_backend
backend eg_backend_{{$b.ID}}
balance {{$b.LBAlgorithm}}
{{- if $b.WebSocket}}
timeout tunnel 1h
{{- end}}
{{- if $b.HealthCheckPath}}
option httpchk
http-check send meth GET uri {{$b.HealthCheckPath}}