Anwendungsserver
Einführung
Der Betrieb mehrerer Passwork-Anwendungsserver ist ein Kernbestandteil der ausfallsicheren Architektur. Er bietet Hochverfügbarkeit, Lastverteilung und Raum für horizontale Skalierung.
Wichtige Vorteile:
- Automatische Verkehrsverteilung — wenn ein Server ausfällt, entfernt der Load Balancer ihn aus dem Pool und leitet den Verkehr an gesunde Knoten weiter
- Lastverteilung — Anfragen werden gleichmäßig verteilt
- Horizontale Skalierung — fügen Sie weitere Server hinzu, um die Kapazität zu erhöhen
- Keine Ausfallzeit — verbleibende Server arbeiten weiter, wenn einer ausfällt
- Vorhersagbares Failover — Verkehr wird automatisch umgeleitet, ohne die App-Konfiguration zu ändern
Architektur mit mehreren Anwendungsservern
Übersicht
Mehrere Passwork-Anwendungsserver laufen parallel. Jeder Server ist eine vollständige Passwork-Instanz mit einem Webserver und PHP-FPM.
Anwendungsserver tauschen keine Daten direkt aus und wissen nicht, wie viele Server im Pool sind — diese Information wird nicht in der Datenbank gespeichert. Alle Anfragen (Authentifizierung, Lesen, Schreiben, Ereignisse) laufen über die Datenbankverbindung, wo Daten für Benutzer gespeichert und abgerufen werden.
Architektur:

Komponenten eines Anwendungsservers
-
Webserver
- Verarbeitet HTTPS-Anfragen
- Liefert statische Dateien aus
- Leitet Anfragen an PHP-FPM weiter
-
Passwork-Anwendung
- Kernlogik von Passwork
- Geschäftsoperationen
-
PHP-FPM (FastCGI Process Manager)
- Führt PHP-Code aus
- Verwaltet den PHP-Worker-Pool
- Verbindet sich mit der Datenbank
Load Balancer
Der Load Balancer ist entscheidend für die Ausfallsicherheit. Er verteilt Anfragen über die Anwendungsserver und leitet den Verkehr bei Serverausfall automatisch um.
Funktionen des Load Balancers
-
Lastverteilung
- Verteilt Anfragen gleichmäßig
- Unterstützt Algorithmen wie Round-Robin, Least Connections, IP Hash
-
Health Check
- Prüft regelmäßig die Verfügbarkeit der Server
- Entfernt automatisch ausgefallene Server aus dem Pool
- Nimmt Server nach Wiederherstellung wieder in den Pool auf
Passwork stellt /api/v1/app/health-check für die Prüfung der Anwendungsserver-Gesundheit bereit.
- SSL/TLS-Terminierung (optional)
- HTTPS-Offloading am Balancer
- Vereinfacht die Zertifikatsverwaltung
Benutzersitzungen werden in der Passwork-Datenbank gespeichert. Wenn ein Benutzer an einen anderen Anwendungsserver weitergeleitet wird, bleiben bestehende Token gültig. Sticky Sessions sind nicht erforderlich — verwenden Sie gleichmäßige Verkehrsverteilung und Health Checks.
Sticky Sessions und Cache
- Sticky Sessions sind nicht erforderlich: Sitzungen und Token werden in der Datenbank gespeichert.
- CDN/Edge-Cache ist für statische Assets (CSS/JS) geeignet; cachen Sie keine API-Anfragen.
Optionen für das Traffic-Balancing
Wählen Sie eine Lösung, die zu Ihrer Infrastruktur passt:
- HAProxy — beliebter L4/L7-Balancer mit flexibler Konfiguration
- Nginx — weit verbreiteter L7-Balancer
- Envoy / Traefik — dynamische L7-Balancer mit Service Discovery
- GSLB / DNS-Load-Balancing über Standorte — für geografisch verteilte Deployments
- Hardware ADC (F5, Citrix, A10 usw.) — für Hochlast- oder hochsichere Umgebungen
Wir bieten keine Installations- oder Konfigurationsanleitungen für Load Balancer an, da diese von der Infrastruktur jedes Unternehmens abhängen.
Empfehlungen zur Skalierung
Horizontale Skalierung ermöglicht es, die Kapazität durch Hinzufügen von Servern zu erhöhen:
- Beginnen Sie mit 2–3 Servern für grundlegende Ausfallsicherheit
- Fügen Sie Server schrittweise hinzu, wenn die Last wächst
- Überwachen Sie die Leistung jedes Servers
- Halten Sie die Konfigurationen identisch über alle Anwendungsserver hinweg
Einschränkungen
- Lizenzierung — Ausfallsicherheit ist mit der Erweiterten Lizenz verfügbar
- Konfigurationssynchronisation — alle Server müssen dieselben Einstellungen verwenden
- Datenbank — alle Server verbinden sich mit demselben MongoDB Replica Set