SID Problem beim Webservercluster

SID Problem beim Webservercluster

am 18.12.2004 15:59:37 von Markus Malkusch

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.
--
- Kontonummerprüfung mit PHP

Re: SID Problem beim Webservercluster

am 18.12.2004 17:08:38 von Stephan Mann

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]

Re: SID Problem beim Webservercluster

am 18.12.2004 17:46:12 von Sven Drieling

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.=20

> bzw. eine Session verloren gehen

Geht IMHO nur mit einer zentralen Speicherung oder einem Protokoll
zur Übergabe der Session-Daten von einem Rechner zum anderen
(a zu b: "Übergebe 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.
=20
http://www.google.com/search?q=3DPHP+MySQL+Session


tschuess
[|8:)

Re: SID Problem beim Webservercluster

am 18.12.2004 20:39:52 von Thomas Schulz

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/