Für unsere Anwendung sind Cookie-basierte Sticky-Sitzungen erforderlich. Daher möchten wir mit HAproxy den eingehenden Datenverkehr auf eine Farm von IIS-Servern verteilen.
Wir verwenden die folgende Konfiguration, die im Labor zu funktionieren scheint (Round-Robin funktioniert einwandfrei und Sitzung wird beibehalten), scheitert jedoch, wenn sie in der Produktion mit mehr als 3k gleichzeitigen Benutzern angewendet wird:
Frontend Front_http
%Vor%Frontend Front_https
%Vor%Backend backend_http
%Vor%Backend Backend_https
%Vor%Aus der HAProxy 1.5.8 Dokumentation verstehe ich, dass Cookie-basierte Klebrigkeit mit dem Befehl "appsession" erreicht wird, aber ich verstehe nicht die Rolle, die andere Befehle spielen, wie "capture cookie" oder "stick-table", sind sie notwendig überhaupt bei der Verwendung von Appsession? Kann jemand mir helfen, zu verstehen, wie sie arbeiten, und beraten, wenn Sie etwas falsch mit unserer Konfiguration feststellen.
Könnten Sie zuerst erklären, was "nicht funktioniert" oder welche Probleme Sie mit Ihrer aktuellen Konfiguration haben?
In Ihrer aktuellen Konfiguration sind einige Probleme aufgetreten: - Appssession Stickness widersteht keinem Reload. Dies bedeutet, dass nach jedem Neuladen von HAProxy Klebrigkeit verloren geht - Sie haben möglicherweise einen Tippfehler in Ihrem SSL-Backend, da Sie SSL-Datenverkehr an Port 80 weiterleiten. Dies ist derselbe Port, den Sie für das Löschen von HTTP verwendet haben.
HAProxy bietet viele Möglichkeiten, um Cookie-basierte Persistenz durchzuführen.
cookie insertion: HAProxy hat sich selbst einen Cookie eingerichtet:
%Vor%cookie prefix: HAProxy verwendet ein existierendes Cookie 'normalerweise Anwendung 1' und setzt seinen Wert mit dem Servernamen voran:
%Vor%Stick-Tabelle: HAProxy lernt und benutzt den Applikations-Cookie, ohne ihn zu verändern:
%Vor%Hinweis: Sie sollten einen Peers-Abschnitt verwenden, um die Daten zwischen zwei HAProxys und beim erneuten Laden der Konfiguration zu synchronisieren Hinweis2: Der expire-Parameter sollte mit dem Zeitlimit für die Anwendungsplätzchen übereinstimmen
Zu guter Letzt wird HAProxy Ihnen in Ihren Protokollzeilen Flags über Cookie-basierte Persistenz (verstehen Sie die mit dem Cookie-Schlüsselwort) melden. Auf diese Weise wissen Sie den Status der Anfrage (gab es einen Cookie, war es gültig, etc ...) und die Aktion von HAProxy (Einfügen eines neuen Cookies, etc ...)
Sie können sich diese Blog-Seite ansehen, um mehr über HAProxy zu erfahren: Ссылка
Baptiste