SID Problem beim Webservercluster

Ich hab' da das Problem, dass bei einem Cluster gleiche SIDs für
verschiedene User auftreten können bzw. eine Session verloren gehen könnte,
wenn der Request auf einem anderen Webserver landet.

Wie wirke ich dem am besten entgegen?

Ich könnte das Sessionverzeichnis z.B. per NFS zentral halten. Die Frage ist
nur ob NFS sich mit dem Sperrmechanismus von PHPs Session verträgt.
Andererseits gefällt mir diese Lösung auch überhaupt nicht, weil ich das
Cluster auch wegen Redundanz haben möchte, und da ist ein gemeinsames
Sessionverzeichnis sehr ungünstig.

Die andere Möglichkeit wäre die Sessions per DBS zu realisieren. Gibt es da
die Möglichkeit das ganze per php.ini zu lösen? Also damit ich dann sowas
wie session.save_handler = mysql benutzen kann.
--
<http://bav.malkusch.de/> - Kontonummerprüfung mit PHP
Markus Malkusch [ Sa, 18 Dezember 2004 15:59 ] [ ID #543261 ]

Re: SID Problem beim Webservercluster

On 2004-12-18 15:59:37, Markus Malkusch wrote:
> Ich könnte das Sessionverzeichnis z.B. per NFS zentral halten. Die Frage
> ist nur ob NFS sich mit dem Sperrmechanismus von PHPs Session verträgt.

Weiss ich leider nicht. Vielleicht geht es mit SMB? Oder eben doch NFS,
aber mit eigenen Handlern, die dann mit dem NFS richtig[tm] umgehen?

> Andererseits gefällt mir diese Lösung auch überhaupt nicht, weil ich das
> Cluster auch wegen Redundanz haben möchte, und da ist ein gemeinsames
> Sessionverzeichnis sehr ungünstig.

Reicht fuer solch "unwichtige" Files nicht ein zeitnahes spiegeln?

> Die andere Möglichkeit wäre die Sessions per DBS zu realisieren. Gibt es
> da
> die Möglichkeit das ganze per php.ini zu lösen? Also damit ich dann sowas
> wie session.save_handler = mysql benutzen kann.

Die User Contributed Notes im Manual behaupten anderes, geben aber eine
IMHO brauchbare Loesung an:

,---
| spam at skurrilo dot de
| 08-May-2002 01:16
|
| You can't use the session autostart feature with
|
| session.save_handler = user
|
| set in your php.ini. Use instead the auto_prepend_file directive
| in the php.ini and point it to your save_handler with an
| session_start() at the end.
`---

just my 2 cents, stephan
--
Der Terrorismus ist ein Krieg der Armen gegen die Reichen.
Der Krieg ist ein Terrorismus der Reichen gegen die Armen.
[Sir Peter Ustinov, 1921 - 2004]
Stephan Mann [ Sa, 18 Dezember 2004 17:08 ] [ ID #543262 ]

Re: SID Problem beim Webservercluster

Markus Malkusch wrote:

Hallo Markus,

> dass bei einem Cluster gleiche SIDs für verschiedene User auftrete=
n
> können

Die SIDs selbst generieren und zwar so, dass sie für jeden Rechner
eindeutig sind - wie bei den NewsIDs im Usenet.

> bzw. eine Session verloren gehen

Geht IMHO nur mit einer zentralen Speicherung oder einem Protokoll
zur =DCbergabe der Session-Daten von einem Rechner zum anderen
(a zu b: "=DCbergebe mir die Session-Daten der Session x.").

> ist nur ob NFS sich mit dem Sperrmechanismus von PHPs Session verträ=
gt.

Keine Ahnung. Handbuch, UserNotes, selbst ausprobieren.

> Die andere Möglichkeit wäre die Sessions per DBS zu realisieren. =
Gibt es
> da die Möglichkeit das ganze per php.ini zu lösen?

Keine Ahnung aber es gibt fertige Handler.

http://www.google.com/search?q=3DPHP+MySQL+Session


tschuess
[|8:)
Sven Drieling [ Sa, 18 Dezember 2004 17:46 ] [ ID #543263 ]

Re: SID Problem beim Webservercluster

Markus Malkusch wrote in de.comp.lang.php.installation:

> Ich hab' da das Problem, dass bei einem Cluster gleiche SIDs für
> verschiedene User auftreten können bzw. eine Session verloren gehen
> könnte, wenn der Request auf einem anderen Webserver landet.

Es gibt auch Reverse-Proxys[1], die dafür sorgen, dass Requests immer auf
dem selben Rechner landen. Am naheliegendsten ist aber wohl ein
datenbankbasierter Sessionhandler.

Das mit der selben ID sollte sehr unwahrscheinlich sein.

ThS.

[1] http://www.apsis.ch/pound/
Thomas Schulz [ Sa, 18 Dezember 2004 20:39 ] [ ID #543264 ]
PHP » de.comp.lang.php.installation » SID Problem beim Webservercluster

Vorheriges Thema: PHP5 mit MySQL unterstützung
Nächstes Thema: Mambo installation