Bei der Konfiguration von HAProxy möchte ich Datenverkehr basierend auf dem Vorhandensein eines Cookies an bestimmte Server senden.
Zum Beispiel:
- Es gibt einen HAProxy-Server und 2 Webserver (ServerA und ServerB).
- Wenn sich jemand anmeldet, wird ein Cookie "loginCreds = user: company" erstellt.
- Wenn John von CompanyA hereinkommt, lautet sein Cookie "loginCreds = John: CompanyA".
- Sein Datenverkehr wird dann an serverA weitergeleitet.
Ist das möglich und wenn ja, wie richten Sie es ein?
Hmn, das ist eine atypische Anfrage. Ich denke, Sie könnten so etwas mit dem Befehl "appsession" in HAProxy tun, aber ich kenne den genauen Algorithmus nicht. Ich vermute, Sie müssten in den HAProxy-Listen nachfragen oder sich den HAProxy-Quellcode ansehen.
Könnten Sie nicht diskriminieren, was "reicher" ist als ein Cookie? Erstellen Sie beispielsweise die Hostnamen "premium.company.com" und "standard.company.com" und leiten Sie den Datenverkehr basierend auf dem Hostnamen weiter.
Eine andere Idee könnte sein, zu erfahren, wie HAProxys eigenes Cookie für Sticky-Sitzungen formatiert wird (siehe Abschnitt "Cookie" in den Dokumenten). Wenn Sie ein Cookie mit genau dem Namen und den internen Daten setzen, die HAProxy selbst verwendet, leitet HAProxy die eingehende Anfrage vermutlich so weiter, wie Sie es möchten ...
quelle