Vergleich: Reverse Proxy & PHP-Cache

Apache, Lighttpd, nginx, Cherokee
mccab99
Posts: 43
Joined: 2006-02-20 08:41
Location: Cloppenburg

Vergleich: Reverse Proxy & PHP-Cache

Post by mccab99 » 2007-04-18 09:58

Hallo,

Ich suche Links/Erfahrungen, die die Effizienz eines Reverse Proxy mit denen eines PHP-Cache vergleichen - also die simple Frage: Was bringt tatsächlich mehr bei vielen dynamischen Inhalten?

Hintergrund:
Ich kann aus technischen Gründen keinen PHP-Cache einsetzen. Alle gängigen Caches versagen bei meiner eingesetzen Applikation mit meinem Setup. Ich stelle mit einen Reverse-Proxy fest, dass die Zugriffe auf den Webserver immens einbrechen (ca. 50-60%). Außerdem tun sich damit ja ganz neue Möglichkeiten der Skalierung auf...

wäre schön, wenn da jemand Idee/Erfahrungen/Links zu hätte!

Gruß,

Maik

flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Vergleich: Reverse Proxy & PHP-Cache

Post by flo » 2007-04-18 10:24

Welcher Reverse-Proxy? Mit oder ohne Cache - so wie Du das schreibst, denke ich mal, Du möchtest cachen, aber dann wäre es doch wieder logisch und gewünscht, wenn die Zugriffe auf das Backend abnehmen würden - es sei denn, Du würdest bei jedem Zugriff wierum feststellen, ob sich die Datei zum Cache hin geändert hat ...

Ach ja: Ich benutze Pound als Reverse-Proxy - nachdem das Experiment selbst mit schlankem Apachen absolut in die Hose ging.

flo.

mccab99
Posts: 43
Joined: 2006-02-20 08:41
Location: Cloppenburg

Re: Vergleich: Reverse Proxy & PHP-Cache

Post by mccab99 » 2007-04-18 10:33

Ich nutze momentan ganz simpel squid, weil ich eventuell dessen mächtige Features (ACL, Filter) bei wachsender Projektgröße nochmal brauchen kann.

Gruß,

Maik

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Vergleich: Reverse Proxy & PHP-Cache

Post by daemotron » 2007-04-18 13:23

Wenn's um Caching geht, würde ich zu Squid tendieren - der macht das recht ordentlich und geht auch mit den HTTP-Stati und Headern "anständig" um. Wenn's eher um Loadbalancing geht, würde ich zu Pound oder HAProxy tendieren; die sind wesentlich schlanker als squid, aber eben keine Cache-Proxies.

Last but not least würde ich auch den Apache nicht ganz zum Teufel jagen - ein schlank gebauter 2.2er mit vernünftigem Prozessmodell (mpm_worker) kann - ausgestattet mit mod_memcache und mod_security - Loadbalancer, Cache und Application Layer Gateway in einem spielen.

Lighttpd würde ich in der 1.4er-Version nicht einsetzen, da hat das Proxy-Modul noch ein paar Macken im Umgang mit HTTP Status Codes aufweist und CML bei dynamischen Webanwendungen eher schwierig einzusetzen ist. 1.5 mit mod_proxy_core lässt aber hoffen...

sledge0303
Posts: 695
Joined: 2005-09-16 00:06
Location: Berlin-Reinickendorf

Re: Vergleich: Reverse Proxy & PHP-Cache

Post by sledge0303 » 2007-04-18 15:08

1.5 mit mod_proxy_core lässt aber hoffen...
Mit dem proxy_core sieht es gut aus, leider ist der 1.5er (noch) nicht stable.
Hab diesbezüglich noch ein paar Tests mit dem Lighty eingeplant für die nächsten 2-4 Wochen.

mccab99
Posts: 43
Joined: 2006-02-20 08:41
Location: Cloppenburg

Re: Vergleich: Reverse Proxy & PHP-Cache

Post by mccab99 » 2007-04-18 15:14

Es geht definitiv ums Caching und später auch um mehr. Der ganze Mist muss leider recht gut skalieren (deswegen auch lighty - spawn-fcgi ist halt nett) können, weil die Applikation (Moodle) eben von Pädagogen geschrieben wird - auch ich bin sowas und verstehe nicht viel von Code, aber eine Anwendung, die dynamisch 200MB RAM anfordert und suhosin damit zur Verzweiflung bringt und deren Code ich kaum lesen kann, nunja.

lighty & fastcgi kommen mit meinem Ansatz nicht klar, ein Codeverzeichnis für x Instanzen vorzuhalten, wenn man einen PHP-Cache aktiviert - dann gibt es hübsche, weiße Seiten. Also brauche ich ein Ersatzcachingverfahren.

Squid macht das eigentlich gut - codiert aber leider die Tabulatoren bei der Ausgabe als Aufzählungszeichen - da gibt es dann lauter schwarze Punkte. Es ist momentan echt zum Heulen.

Die letzte Option ist tatsächlich, es mit Apache zu versuchen, von dem ich "damals" als ich noch kleine Maschinen hatte, ganz weggekommen bin - Moodle frisst nunmal Speicher und Apache braucht davon ca. 30% mehr als Lighty...

Gruß,

Maik

aquajo
Posts: 145
Joined: 2003-02-25 21:07

Re: Vergleich: Reverse Proxy & PHP-Cache

Post by aquajo » 2007-04-18 18:04

mccab99 wrote:wäre schön, wenn da jemand Idee/Erfahrungen/Links zu hätte!
neben den genannten Squid nenne ich jetzt nochmal Varnish: http://varnish.projects.linpro.no/

Und nun noch ein paar Gedanken:

- überlegen ob der Reverse-Proxy primär nur die statischen Inhalte ausliefern soll (Bilder, css usw.) oder evtl. auch dynamische Seiten (kurz) cachen soll
- soweit möglich dem Proxy durch entsprechende http-Header signalisieren was er cachen darf/soll, und wielange.

Wenn der Proxy "nur" die statischen Sachen abnimmt, dann spart man zwar schon einige Requests (und auch etwas Last), aber den größten Effekt kann man natürlich gewinnen, wenn die dynamischen Seiten nicht so dynamisch sind, dass sie eine Zeit lang gecached werden können, und so einige Request aus dem Cache beantwortet werden können.
Dafür muss man aber (minimal) die Skripte anpassen, so dass diese die passenden Header mitsenden.