Erfahrungsaustausch Webserver mit PHP mit Lighty auf mehreren Servern

Apache, Lighttpd, nginx, Cherokee
braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner

Erfahrungsaustausch Webserver mit PHP mit Lighty auf mehreren Servern

Post by braindead » 2007-06-30 19:36

Hi,

hab vor ein paar Wochen die Betreuung einer Webseite übernommen die mit Performance einige Probleme hatte. Die ganze Sache lief bisher auf Apache mit einem Loadbalancer und MySql Replizierung auf alle Webserver. Nach Analyse der Situation haben wir jetzt wie folgt umgebaut.

Server 1. ist der "Hauptserver" mit einem DualCore Opteron, der ackert als MySql, Web, Mail und Datenserver im Moment auch noch als PHP Rechner
Server 2+3. normale Opterons die also PHP "Rechner" arbeiten

Die Daten werden also auf Server 1 gehalten und über SSHFS auf den Remoteservern eingemountet. Die PHP Rechner werden über externes spawnen gestartet und die Lastverteilung macht der Lighty ja von selbst. Bishe läuft das ganze ganz gut. Wer hat noch sowas im Einsatz und kann von seinen Erfahrungen berichten? Meine Probleme bisher:

- php Sessions nicht auf allen Servern verfügbar (für alle das selbe Verzeichnis genommen und das auch wieder per SSHFS eingemountet)
- die mail Funktion von PHP brauch leider ein sendmail, sprich alle server brauchen einen Mailserver :(

Gruß Braindead

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Erfahrungsaustausch Webserver mit PHP mit Lighty auf mehreren Servern

Post by Roger Wilco » 2007-06-30 19:42

braindead wrote:- php Sessions nicht auf allen Servern verfügbar (für alle das selbe Verzeichnis genommen und das auch wieder per SSHFS eingemountet)
Die Sessions könntest du auch in der MySQL-Datenbank speichern, was die Last dann eben dorthin verlagert. Dürfte aber performanter sein, als Flatfiles über SSH einzubinden.
braindead wrote:- die mail Funktion von PHP brauch leider ein sendmail, sprich alle server brauchen einen Mailserver :(
Es wird kein vollwertiger MTA benötigt. ssmtp, nbsmtp oder esmtp reichen dazu aus.

braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner

Re: Erfahrungsaustausch Webserver mit PHP mit Lighty auf mehreren Servern

Post by braindead » 2007-07-01 13:20

Die Sessions könntest du auch in der MySQL-Datenbank speichern, was die Last dann eben dorthin verlagert. Dürfte aber performanter sein, als Flatfiles über SSH einzubinden.
Hast du ein HowTo oder sowas in der Art wie das zu bewerkstelligen ist? Hab das leider noch nichts gefunden das mit weiterhilft.

Das man MySql über TCP/IP ansprechen muss ist klar, sonst kann das ja mit mehr als einem Server nicht funktionieren ;)
-> Auf SSHFS würde ich zur Not verzichten und eine Redudante Datenablage auf beiden Server bevorzugen. Das macht die Sache etwas schneller.
Das ist eigentlich kein Problem, dank APC liegen die Scripte so wie so im Cache auf /dev/shm und so hab ich wenigstens keine Probleme Dateiuploads und sync Problemen.
Dahingehend würde ich z.B. auch eigene Scripte anpassen.
Das Problem haben wir jetzt so gelöst das alles Mails in die MySql DB in eine Mail Queue geschrieben werden und dann vom eigentlichen Mailserver verschickt werden.

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Erfahrungsaustausch Webserver mit PHP mit Lighty auf mehreren Servern

Post by Roger Wilco » 2007-07-01 13:56

braindead wrote:Hast du ein HowTo oder sowas in der Art wie das zu bewerkstelligen ist? Hab das leider noch nichts gefunden das mit weiterhilft.
http://php.net/session#session.customhandler
braindead wrote:Das Problem haben wir jetzt so gelöst das alles Mails in die MySql DB in eine Mail Queue geschrieben werden und dann vom eigentlichen Mailserver verschickt werden.
Schau dir lieber mal die von mir genannten Relay-only MTAs an. Dann sind solche Konstrukte unnötig.

braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner

Re: Erfahrungsaustausch Webserver mit PHP mit Lighty auf mehrere

Post by braindead » 2008-01-07 19:17

Um mal ein kleines Update zu geben, mittlerweile habe ich rausgefunden das es sehr einfach möglich ist sie Sessions ins Memcache zu halten. Damit hat sich das ganze Problem mit dem Einbinden von files über SSH usw. dann auch erledigt. Außerdem kann man den Memcache natürlich noch für andere Dinge verwenden.