Getrennte Webserver für statische und dynamische Inhalte

Apache, Lighttpd, nginx, Cherokee
Anonymous

Getrennte Webserver für statische und dynamische Inhalte

Post by Anonymous » 2008-03-03 15:55

Hallo zusammen,

ich betreibe eine mittelgroße Community (> 5Mio PIs/Monat), als CMS kommt ein modifiziertes Joomla (also unter PHP) zum Einsatz. Bei uns können die Benutzer Web2.0 üblich Bilder hochladen. Dies macht auch den Haupttraffic bei uns aus, die Bilder. Zur Zeit quält sich ein Webserver mit allem ab. Ich gedenke nun allen statischen Content, also Bilder, CSS Dateien, JS-Dateien usw. auf einem zweiten Server, auf dem lighttpd zum Einsatz kommen soll, abzulegen, sodass all dieser statsiche Content von diesem zweiten Server kommt. Die Datenbanken und PHP Scripte sollen weiterhin auf dem bisherigen Server verbleiben und auch weiterhin dort ausgeführt werden. Beide Server stehen vermutlich in unterschiedlichen Rechenzentren, sind also nur übers I-Net miteinander verbunden. Sicherheitsthemen wie, darf der Benutzer das Bild überhaupt sehen, sollen erst mal völlig außer acht gelassen werden.

Hat irgendjemand sowas schon mal realisiert?

Wie kann ich es anstellen, dass, wenn der Benutzer ein Bild hochläd, dieses zwar durch PHP auf dem ersten Hauptserver entgegengenommen und verarbeitet wird, aber dann auf dem zweiten "Static" Server abgespeichert wird. Wie wird sowas normalerweise gemacht? Gibts da spezielle Funktionen von PHP? Oder wird da einfach alles ständig synchronisiert?
Ich würde diese Synchronisation auch gerne einigermaßen Trafficschonend realisieren.

Auf eine Antwort würde ich mich freuen ( wen wunderts :roll: )

sincity
Posts: 3
Joined: 2008-03-02 16:29

Re: Getrennte Webserver für statische und dynamische Inhalte

Post by sincity » 2008-03-03 20:01

per FTP? (PHP bietet auch FTP-funktionen an)

Aber eigentlich lohnt es sich eher PHP-FCGI auf dem lighty laufen zu lassen und darüber direkt die Bilder (via POST) anzunehmen und auch auszuliefern (um evtl. Sicherheitsregeln zu beachten) - als Schnittstelle könnte man eine extern zugreifbare MySQL-DB benutzen.

oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Getrennte Webserver für statische und dynamische Inhalte

Post by oxygen » 2008-03-03 20:24

Eine anderer Ansatz wäre einfach ein Reserve Proxy, typischerweise Squid. Dann bräuchtest du an deinem Projekt-Code nur wenig ändern.

proflan
Posts: 9
Joined: 2008-03-02 03:05

Re: Getrennte Webserver für statische und dynamische Inhalte

Post by proflan » 2008-03-04 01:14

Mounte doch einfach das FS des Static ein - der Abruf per http kann ja dann über den 2. Webserver erfolgen

http://de.wikipedia.org/wiki/Network_File_System

proflan
Posts: 9
Joined: 2008-03-02 03:05

Re: Getrennte Webserver für statische und dynamische Inhalte

Post by proflan » 2008-03-04 01:20

matzewe01 wrote:Das ist zu unsicher.


http://nfs.sourceforge.net/nfs-howto/ar01s06.html

Anonymous

Re: Getrennte Webserver für statische und dynamische Inhalte

Post by Anonymous » 2008-03-04 13:02

Vielen Dank erstmal für eure guten Tipps.
Ich sehe, das ist gar nicht mal so ohne, sowas zu realisieren.

Per FTP die Dateien zu übertragen wäre vielleicht noch ne Möglichkeit, wenn man SFTP/SCP über PHP nutzen würde. Da gibts ja ein Modul für PHP. Aber etwas problematisch und aufwendig ist es dann, die Bilder beim löschen auch auf dem Static-Server zu löschen. Da müsste ich also alle Codestellen anpassen #-o

Per NFS alleine scheint es zu unsicher zu sein, das haben scheinbar auch schon andere eingesehen: http://krisbuytaert.be/blog/?q=node/504

Einen Tunnel für NFS aufzubauen, hmm, ich glaube das geht auch schon gut an die Performance, wie du ja schon sagst matzewe01. Per rsync ein Verzeichnis abzugleichen, geht natürlich auch nur über eine verschlüsselte Verbindung. Dazu hab ich aber hier eine Howto gefunden: http://www.howtoforge.de/howto/spiegele-deine-web-site-mit-rsync/
Dabei habe ich aber das Problem, dass wenn der Benutzer sein Bild hochgeladen hat, er es erst sehen kann, wenn es synchronisiert wurde, das wird wohl auch zu einigen Missverständnissen der Benutzer kommen. Da müsste ich mir auch erst etwas bauen, was die Bilder solange sie nicht sync sind, sie erst einmal von der Platte des dynamischen Servers holt :?

Ich glaube, das ist alles nicht so richtig das Gelbe vom Ei. Ein zentrales storage-system ist da glaube ich die bessere Lösung, dann alle Server gleich bei einem Anbieter und mit nem Switch verbunden. Leider ist das bei meinem jetzigen Anbieter Strato sicherlich unmöglich, sowas zu bekommen. Da schaue ich mich doch mal nach nem neuen Anbieter um. Ich glaube, dann kann ich besser schlafen.

Trotzdem vielen Dank für eure Antworten, sie haben mir geholfen, das nochmal genauer zu überdenken.