12 Stimmen

Apache oder lighttpd

Für die Entwicklung verwende ich einen lokalen LAMP-Stack, für die Produktion verwende ich Der Django-Container von MediaTemple (die mir übrigens sehr gut gefällt). Der MT-Container verwendet lighthttpd. Ehrlich gesagt habe ich noch nie andere Erfahrungen damit gemacht. Ich habe immer Apache benutzt. Ich habe etwas gelesen:

Hier sind einige Fragen:

  • Welche Stärken hat die eine gegenüber der anderen?
  • Würde es profitieren lighthttpd auf meinem Entwicklungssystem zu verwenden?
  • Was spricht dagegen, beides zu verwenden? Der Artikel auf Linux.com spricht von der Verwendung von lighttpd mit Apache.

4voto

Oli Punkte 226885

Der Vorteil von beidem: Apache ist leistungsfähiger und erweiterbar (nutzlos, wenn man diese Leistung nicht braucht, aber egal...) und Lighttpd ist schneller bei statischen Inhalten. Die Idee besteht darin, Ihre Website in statische Inhalte (css, js, Bilder usw.) und dynamischen Code aufzuteilen, der durch den Apache fließt.

Ich will damit nicht sagen, dass man mit lighttpd allein nicht viel machen kann. Man kann und die Leute tun es.

Wenn Sie lighttpd ausschließlich auf Ihrem Produktionsserver verwenden, würde ich ernsthaft in Erwägung ziehen, es auf Ihren Entwicklungs- und Staging-Servern zu spiegeln, damit Sie genau wissen, was Sie erwarten können, bevor Sie es einsetzen.

4voto

yogman Punkte 3953

Für rein statische Webseiten (.gif, .css, etc.) mit n http-Anfragen von verschiedenen IP-Adressen: 1. Apache: Führt n Prozesse aus (mit mod_perl, mod_php im Speicher) 2. lighttpd: Führt 1 Prozess und 1 Thread aus (Sie können m Threads zuweisen, bevor Sie ihn starten)

Für rein dynamische Webseiten (.php, .pl) mit n http-Anfragen von verschiedenen IP-Adressen: 1. Apache: Führt n Prozesse aus (mit mod_perl, mod_php im Speicher) 2. lighttpd: Führt 1 lighttpd-Prozess dank asynchroner E/A aus und führt m Fast-Cgi-Prozesse für jede Skriptsprache aus.

Lighttpd verbraucht viel weniger Speicher. YouTube war früher ein großer Nutzer von lighttpd, bis es von Google übernommen wurde. Auf der Homepage finden Sie weitere Informationen.

P.S. In meinem früheren Unternehmen haben wir beides mit einem Load Balancer verwendet, um den http-Verkehr entsprechend den URL-Suffixen zu verteilen. Warum nicht vollständig lighttpd? Aus veralteten Gründen.

3voto

akaihola Punkte 25244

Die Art und Weise, wie Sie die Schnittstelle zwischen dem Webserver und Django einrichten, kann sich sogar noch stärker auf die Leistung auswirken als die Wahl der Webserver-Software. Zum Beispiel ist mod_python dafür bekannt, dass es viel RAM benötigt.

Diese Frage und seine Antworten behandeln auch andere Webserver-Optionen.

Ich würde mir keine Sorgen über Kompatibilitätsprobleme mit Client-Software machen (siehe MarkRs Kommentar ). Ich hatte keine derartigen Probleme, wenn ich Django mit lighttpd und FastCGI bedient habe. Ich würde gerne ein vielfältiges Ökosystem von Server- und Client-Software sehen. Ein guter Standard ist besser als ein de facto Produkt von einem einzigen Anbieter.

0voto

Eric Lamb Punkte 1414

Die Antwort hängt von den Zielen Ihres Projekts ab. Wenn es sich um eine große Website handelt, bei der die Betriebszeit kritisch und die Auslastung hoch ist, sollten Sie lighttpd verwenden; es skaliert erstaunlich gut. Der einzige Nachteil ist, dass Sie anfangs mehr Hand anlegen müssen. Die meisten Hoster unterstützen dies nicht und es zahlt sich wirklich aus, wenn man weiß, was man mit lighttpd macht.

Wenn es sich um eine Website für deine Mutter handelt, die ein paar tausend Besucher im Monat hat, ist Apache besser geeignet. Sie kann viel einfacher zu einem neuen Hoster wechseln und der Support ist leichter zu finden.

-5voto

MarkR Punkte 60862

Verwenden Sie einen Standard-Webserver. Apache wird von 50% der Websites verwendet ( Netcraft ). Wenn Sie Apache verwenden, ist also so gut wie garantiert, dass die Webbrowser, Spider, Proxys usw. der Nutzer mit Ihrer Website (und ihrem Webserver) funktionieren.

Lighthttpd wird von 1,5 % der Websites verwendet ( Netcraft ), so dass es sehr viel unwahrscheinlicher ist, dass die Leute ihre Anwendungen damit testen werden.

Ein Apache-Server kann wahrscheinlich statische Anfragen mit einer viel höheren Bandbreite bedienen als Sie, und das auf der langsamsten Hardware, die Sie wahrscheinlich in der Produktion einsetzen werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X