feat(backends): Pool-Modell — Backend = Pool, N Server pro Backend
Migration 0016: backend_servers (id, backend_id, name, address, port, weight, backup, active) + backends.lb_algorithm. Daten-Migration kopiert bestehende backends.address/port als ersten Server, dann DROP COLUMN. HAProxy-Renderer: rendert pro Backend einen Block mit `balance <algo>` + N `server`-Zeilen (weight, backup-Flag, optional check inter 5s). LB-Algorithmen: roundrobin / leastconn / source. REST: /backends/:id/servers (GET/POST), /backend-servers/:id (PUT/DELETE). Re-rendert HAProxy nach jeder Server-Mutation. UI: address/port aus Backend-Form raus, lb_algorithm-Select rein. Server verwaltet ein expandable Sub-Panel pro Backend-Row (Tabelle + Add/Edit/ Delete-Modal). Domain-Attachment-Multi-Select bleibt. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -202,13 +202,11 @@
|
||||
},
|
||||
"backends": {
|
||||
"title": "Backends",
|
||||
"intro": "Upstream-Server, an die HAProxy weiterroutet. Health-Check-Pfad optional aktiviert TCP+HTTP-Probes alle 5s.",
|
||||
"addBackend": "Backend hinzufügen",
|
||||
"editBackend": "Backend bearbeiten",
|
||||
"intro": "Upstream-Pools (Backend = N Server). HAProxy verteilt laut LB-Algorithmus; Health-Check-Pfad aktiviert HTTP-Probes alle 5s pro Server.",
|
||||
"addBackend": "Backend-Pool hinzufügen",
|
||||
"editBackend": "Backend-Pool bearbeiten",
|
||||
"name": "Name",
|
||||
"scheme": "Schema",
|
||||
"address": "Adresse",
|
||||
"port": "Port",
|
||||
"target": "Ziel",
|
||||
"healthCheck": "Health-Check-Pfad",
|
||||
"active": "Aktiv",
|
||||
@@ -217,8 +215,30 @@
|
||||
"attachedDomains": "Domains",
|
||||
"attachedDomainsHint": "Domains, die dieses Backend als Primary verwenden. Auswahl umkonfiguriert die Domains direkt — gleiche Quelle wie der Backend-Picker im Domain-Modal.",
|
||||
"selectDomains": "Domains wählen",
|
||||
"lbAlgo": "Load-Balancing",
|
||||
"lbAlgoHint": "roundrobin = gleichmäßig, leastconn = an den Server mit wenigsten Verbindungen, source = sticky per Client-IP (für stateful Apps ohne shared session).",
|
||||
"servers": "Server",
|
||||
"noServers": "kein Server",
|
||||
"nServers": "{{n}} Server",
|
||||
"serversIn": "Server in „{{name}}\"",
|
||||
"serverHintCreate": "Speichern legt nur den Pool an. Server kommen im nächsten Schritt — Pool öffnen → „Server hinzufügen\".",
|
||||
"actions": "Aktionen",
|
||||
"deleteConfirm": "Backend {{name}} wirklich löschen?"
|
||||
"deleteConfirm": "Backend-Pool {{name}} wirklich löschen? Alle Server im Pool werden mitentfernt.",
|
||||
"server": {
|
||||
"intro": "Upstream-Server im Pool. Reihenfolge in HAProxy egal — der LB-Algorithmus entscheidet.",
|
||||
"add": "Server hinzufügen",
|
||||
"edit": "Server bearbeiten",
|
||||
"name": "Server-Name",
|
||||
"address": "Adresse",
|
||||
"port": "Port",
|
||||
"target": "Endpoint",
|
||||
"weight": "Gewicht",
|
||||
"weightHint": "0–256. Höher = mehr Traffic. 100 = Standard.",
|
||||
"backup": "Backup",
|
||||
"backupHint": "Backup-Server werden nur angesprochen, wenn alle primären Server (non-backup) down sind.",
|
||||
"empty": "Noch keine Server im Pool. „Server hinzufügen\" startet damit.",
|
||||
"deleteConfirm": "Server {{name}} wirklich löschen?"
|
||||
}
|
||||
},
|
||||
"routing": {
|
||||
"title": "Routing-Regeln",
|
||||
|
||||
Reference in New Issue
Block a user