Hallo
Für ein Projekt, wofür die Daten auf viele Webserver (Lastverteilung) Scripte und Datenbanken repliziert werden eignet sich laut meiner Fachlektüre eine Cookie Authentifizierung viel mehr wie eine Sessions bedingte Authentifizierung.
Hier bei geht es nicht um ein über Cookie ermöglichtes Auto Login sondern um das starten der Session selbst, oder das Verwalten via Cookies (d.h. Mit jedem Zugriff ein Login Abgleich ohne Session).
Sessions bedingt:
Die Session wird gestartet und beibehalten, ganz gleich ob die Logindaten über die SessionsID oder Cookie oder ein Login Formular ankommen. Der Abgleich findet immer dann statt, wenn eine Session nicht existiert.
Cookie:
Die Login Daten werden im Cookie abgelegt, und bei jedem Zugriff auf die Seite abgeglichen. Es wird keine Session gestartet.
Es geht jetzt darum, wenn ich ein Script auf viele Webserver Clone (Google/Yahoo Verfahren)
Script xy
S1xy S2xy S3xy S4xy
und der Besucher auf diese Lasten von Seitenaufruf zu Seitenaufruf verteilt werden, bringt mir die Session auf S1 gar nichts. Es wird hier beziffert, dass man sich im schlimmsten Fall 4 Mal einloggen müsste, da das Cookie immer auf bestimmte Hosts festgelegt werden muss, der Autologin auch nicht viel bringen würde.
In der Praxis habe ich das nach gespielt und festgestellt, das es vollkommen richtig ist.
ww1.xy (eingeloggt)
ww2.xy (erneut einloggen müssen)
ww3.xy (erneut einloggen müssen)
Und es sollte ja klar sein, dass es normal ist. Klar gibt es heut zu Tage auch Lastverteiler in (LVS) Strukturen, die so was vorbeugen, doch taucht auch hier ein Problem auf, sobald sich die Besucherzahl ins unbewältigbare steigert, nehmen irgendwann die Sessionen mehr Platz ein, als auf den Server verfügbar. Dahinter, die aktiven Sessionen würden von hinten her gelöscht werden. Nur ein LVS mit einem IP-Tunnel verfahren kann so was bewältigen. Jedoch ist dieses System immerhin noch leicht anfällig, und nur schwer und aufwendig zu warten, sodass auch viele Riesen darauf verzichten.
Um es auf den Punkt zu bringen. Was nützt mir ein Session bedingtes Login, wenn es auf Viele Server verteilt werden sollte. Macht das überhaupt Sinn, wenn ich weiß, 250 Aktive User überlasten ein Forum oder der gleichen, und es besuchen micht 2000 gleichzeitig? Macht es Sinn den Login auf jedem Server extra abzuarbeiten, und damit auch den Severspeicher mit den Sessionen zu zu müllen? Letzt endlich passiert mit dem Autologin doch fast das gleiche.
Meine Frage ist, warum sollte man das nicht gleich via Cookie lösen!
Ich habe folgenden Hintergedanken. Ich habe ein VMS1 in Betrieb. Dies hat ein Sessionsbedingtes Login. Das VMS1 ist meist so ausgereizt, dass es geclustert auf Servern liegen sollte. Jetzt müsste sich aber jeder User auf jedem Server einloggen. Ich könnte das via Cookies lösen, in dem ich den Login auf den ganzen Host erlaube. Doch dann frage ich mich gleich, lohnt es sich dort wenn schon geclustert wird, nicht gleich das ganze ablegen der Session (Zumüllung) des Servers auszubauen. Im Endeffekt ist es 1 SQL mehr pro Abfrage. Allerdings die Möglichkeit so viele Server zu beschäftigen wie beliebig. Ein Lastverteilung auch per Zufall möglich.
Ich würde mir gerne die Vor bzw. Nachteile von euch anhören. Vielleicht gibt es bessere Lösungen. Wichtig ist, die Lösung sollte mit jedem Script gehen. Ich möchte mir mit RSYNC, Clones meiner Webseiten auf verschiedenen Webservern ablegen, und die alle im LVS gleichmäßig belasten.
Für ein Projekt, wofür die Daten auf viele Webserver (Lastverteilung) Scripte und Datenbanken repliziert werden eignet sich laut meiner Fachlektüre eine Cookie Authentifizierung viel mehr wie eine Sessions bedingte Authentifizierung.
Hier bei geht es nicht um ein über Cookie ermöglichtes Auto Login sondern um das starten der Session selbst, oder das Verwalten via Cookies (d.h. Mit jedem Zugriff ein Login Abgleich ohne Session).
Sessions bedingt:
Die Session wird gestartet und beibehalten, ganz gleich ob die Logindaten über die SessionsID oder Cookie oder ein Login Formular ankommen. Der Abgleich findet immer dann statt, wenn eine Session nicht existiert.
Cookie:
Die Login Daten werden im Cookie abgelegt, und bei jedem Zugriff auf die Seite abgeglichen. Es wird keine Session gestartet.
Es geht jetzt darum, wenn ich ein Script auf viele Webserver Clone (Google/Yahoo Verfahren)
Script xy
S1xy S2xy S3xy S4xy
und der Besucher auf diese Lasten von Seitenaufruf zu Seitenaufruf verteilt werden, bringt mir die Session auf S1 gar nichts. Es wird hier beziffert, dass man sich im schlimmsten Fall 4 Mal einloggen müsste, da das Cookie immer auf bestimmte Hosts festgelegt werden muss, der Autologin auch nicht viel bringen würde.
In der Praxis habe ich das nach gespielt und festgestellt, das es vollkommen richtig ist.
ww1.xy (eingeloggt)
ww2.xy (erneut einloggen müssen)
ww3.xy (erneut einloggen müssen)
Und es sollte ja klar sein, dass es normal ist. Klar gibt es heut zu Tage auch Lastverteiler in (LVS) Strukturen, die so was vorbeugen, doch taucht auch hier ein Problem auf, sobald sich die Besucherzahl ins unbewältigbare steigert, nehmen irgendwann die Sessionen mehr Platz ein, als auf den Server verfügbar. Dahinter, die aktiven Sessionen würden von hinten her gelöscht werden. Nur ein LVS mit einem IP-Tunnel verfahren kann so was bewältigen. Jedoch ist dieses System immerhin noch leicht anfällig, und nur schwer und aufwendig zu warten, sodass auch viele Riesen darauf verzichten.
Um es auf den Punkt zu bringen. Was nützt mir ein Session bedingtes Login, wenn es auf Viele Server verteilt werden sollte. Macht das überhaupt Sinn, wenn ich weiß, 250 Aktive User überlasten ein Forum oder der gleichen, und es besuchen micht 2000 gleichzeitig? Macht es Sinn den Login auf jedem Server extra abzuarbeiten, und damit auch den Severspeicher mit den Sessionen zu zu müllen? Letzt endlich passiert mit dem Autologin doch fast das gleiche.
Meine Frage ist, warum sollte man das nicht gleich via Cookie lösen!
Ich habe folgenden Hintergedanken. Ich habe ein VMS1 in Betrieb. Dies hat ein Sessionsbedingtes Login. Das VMS1 ist meist so ausgereizt, dass es geclustert auf Servern liegen sollte. Jetzt müsste sich aber jeder User auf jedem Server einloggen. Ich könnte das via Cookies lösen, in dem ich den Login auf den ganzen Host erlaube. Doch dann frage ich mich gleich, lohnt es sich dort wenn schon geclustert wird, nicht gleich das ganze ablegen der Session (Zumüllung) des Servers auszubauen. Im Endeffekt ist es 1 SQL mehr pro Abfrage. Allerdings die Möglichkeit so viele Server zu beschäftigen wie beliebig. Ein Lastverteilung auch per Zufall möglich.
Ich würde mir gerne die Vor bzw. Nachteile von euch anhören. Vielleicht gibt es bessere Lösungen. Wichtig ist, die Lösung sollte mit jedem Script gehen. Ich möchte mir mit RSYNC, Clones meiner Webseiten auf verschiedenen Webservern ablegen, und die alle im LVS gleichmäßig belasten.
Zuletzt bearbeitet: