Session-cookies, die mit load balancing (Nicht sticky sessions)
Habe ich gescannt RFC 6265 aber nicht die Antwort finden, die der folgenden.
Ich möchte ein naiv, round-Robin-Lastenausgleich in front-mehrere Server für eine einzige webapp. Der load-balancer stellt nicht bieten sticky sessions. So ein client in der Regel hüpfen von einem Anwendungsserver zu einem anderen auf aufeinander folgende Anfragen.
Auf der ersten Verbindung, der client hat keine SID und wird nach dem Zufallsprinzip weitergeleitet, sage, server A.
Server antwortet mit einem session-cookie, eine nonce.
Auf die nächste Verbindung, die der client enthält die SID vom server in den HTTP-Headern.
In diesem Zeitpunkt wird der client nach dem Zufallsprinzip weitergeleitet, sage, server B.
Server B sieht die SID, die (man hofft!) entspricht nicht jede SID, die es ausgestellt hat.
Was passiert? Hat server B einfach ignorieren, die "schlechten" SID, oder sich beschweren, oder ignorieren Sie die Anfrage, oder was?
Die Idee ist, das möchte ich nicht verwenden session-cookies überhaupt. Ich möchte vermeiden, alle die Komplexität der Klebrigkeit. Aber ich weiß auch, dass mein Server wird wahrscheinlich generieren -- und mehr an die Stelle suchen -- session-cookies sowieso.
Wie kann ich sicherstellen, dass der Server einfach ignorieren (oder besser noch nicht festgelegt) session-cookies?
- Ok, keine Antworten. Vielleicht ist meine Frage dumm ist. Wenn ja, bitte Schubs mich zurück auf den Pfad. Danke!
- Vielleicht eine dumme Frage - Wie wird der Server B "sehen" die SID-setup, indem Sie Server - Cookies sind domain-spezifisch ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, die Antwort auf das wird stark variieren, abhängig von der Anwendung, die auf dem server ausgeführt wird. Während eine load-balancer-Wert sein Salz hat sticky sessions, den Betrieb ohne Sie getan werden kann so lange, wie alle Server in den pool Zugriff auf die gleichen session-Status über eine zentrale Datenbank.
Seit Sie sprechen über session-IDs, ich vermute, dass die Anwendung nicht verlassen sich auf session state, um zu funktionieren. In diesem Fall, wenn die Anfrage kam, in der mit einer "schlechten" session-ID, wäre es wahrscheinlich verworfen werden und der Benutzer zur Anmeldung aufgefordert — wiederum das genaue Verhalten hängt von der app. Wenn Sie zum deaktivieren der session-cookie ganz, das problem wäre wahrscheinlich noch schlimmer, da das fehlen einer ID führen könnten, einen login-prompt als gut.
Wenn Sie wirklich wollen, um zu vermeiden, Komplexität am load balancer, müssen Sie einen Mechanismus einzuführen, mit denen alle Server können Anfragen aus aller Sitzungen. In der Regel nimmt dieses die form einer zentralisierten Datenbank oder shared storage. Dies ermöglicht den Sitzungsstatus beibehalten werden, unabhängig von der server die Handhabung, insbesondere Anfrage.
Verwaltung des Sitzungsstatus ist einer der strittigen Punkte (Wortspiel beabsichtigt) des load-balancing, aber Sie einfach zu ignorieren oder die Vermeidung von session-cookies ist nicht die Lösung.