hallo zusammen,
ich bin gerade an einem django projekt und möchte gerne wissen welcher http server am ehesten geeignet ist und auch bei hoher besucherzahl nicht so schnell in die knie geht, zum beispiel apache, cherokee, nginx, lighttpd oder ein anderes open source produkt.
kennt jemand von euch testberichte und benchmarks? trotz intensives googlen habe ich nichts aussagekräftiges gefunden und die aussagen sind wiedersprüchlich. an einem ort sagt man mir, wenn ich apache richtig konfiguriere ist dieser auch schnell und viel hits verarbeitet aber andern orts sagt man, dass nginx das richtige sei.
hat da jemand erfahrung und weiss was darüber bescheid?
danke und gruss
spite
welcher http server
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wieviele Hits erwartest Du denn so? Man sagt dem lighthttpd gute Werte in Punkto Geschwindigkeit nach. Allerdings kommt es bei Webservern neben der Software ja auch so viele andere Dinge an... 

- Defnull
- User
- Beiträge: 778
- Registriert: Donnerstag 18. Juni 2009, 22:09
- Wohnort: Göttingen
- Kontaktdaten:
fapws3 sollte mit das schnellste sein, was man bekommen kann, allerdings vertraue ich dem C-Code noch nicht 100%ig. Es ist eben ein seeehr einfacher, wenn auch verflucht schneller HTTP Server.
apache + mod_wsgi wäre für eine Produktiv-Umgebung meine erste Wahl. lighttpd ist zwar schneller, schlanker und schöner, aber mod_wsgi gibt es leider nur für Apache. lighttpd hat höchstens mod_proxy, was aber den Overhead einer zweiten HTTP Schicht mit sich bringt.
Ich persönlich lasse mehrere fapws3 Instanzen hinter einem pound Load-Balancer laufen, da ich gern etwas mehr Kontrolle habe. Von der Performance ist das unschlagbar, allerdings eher was für Leute, die genau wissen, was sie tun. Man kann da eben ne Menge falsch machen.
Edit: Dein Bottleneck wird natürlich IMMER die Django-Instanz sein und nicht der HTTP Server. Wenn du nicht gerade mit ein paar tausend Requests pro Sekunde rechnest, ist die Wahl des Webservers eher nebensächlich.
apache + mod_wsgi wäre für eine Produktiv-Umgebung meine erste Wahl. lighttpd ist zwar schneller, schlanker und schöner, aber mod_wsgi gibt es leider nur für Apache. lighttpd hat höchstens mod_proxy, was aber den Overhead einer zweiten HTTP Schicht mit sich bringt.
Ich persönlich lasse mehrere fapws3 Instanzen hinter einem pound Load-Balancer laufen, da ich gern etwas mehr Kontrolle habe. Von der Performance ist das unschlagbar, allerdings eher was für Leute, die genau wissen, was sie tun. Man kann da eben ne Menge falsch machen.
Edit: Dein Bottleneck wird natürlich IMMER die Django-Instanz sein und nicht der HTTP Server. Wenn du nicht gerade mit ein paar tausend Requests pro Sekunde rechnest, ist die Wahl des Webservers eher nebensächlich.
Bottle: Micro Web Framework + Development Blog
Sowas wie Varnish vorzuschalten waere in diesem Fall sicher nicht die schlechteste Idee...Defnull hat geschrieben:Edit: Dein Bottleneck wird natürlich IMMER die Django-Instanz sein und nicht der HTTP Server. Wenn du nicht gerade mit ein paar tausend Requests pro Sekunde rechnest, ist die Wahl des Webservers eher nebensächlich.
Da es um Django geht, bietet sich eher memcached an, denn das ist bereits in Djangos Caching-Infrastruktur als Backend integriert.
Siehe auch http://docs.djangoproject.com/en/dev/topics/cache/
Stefan
Siehe auch http://docs.djangoproject.com/en/dev/topics/cache/
Stefan
Nginx ist nur unwesentlich schneller als Apache, aber Apache benötigt u.U. deutlich mehr Speicher. Ich nutze Nginx als Proxy vor Apache mit mod_wsgi + django. Alles statische wird von Nginx ausgeliefert, der Rest wird an Apache durchgereicht. Das hat sich bislang als recht brauchbare Kombination erwiesen.spite hat geschrieben: an einem ort sagt man mir, wenn ich apache richtig konfiguriere ist dieser auch schnell und viel hits verarbeitet aber andern orts sagt man, dass nginx das richtige sei.
Gruß
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Fuer Caching schlage ich noch StaticGenerator vor.
- noisefloor
- User
- Beiträge: 4149
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
ich weiß gar nicht, ob man die Frage so pauschal beantworten kann...
Je nach Anwendung und Server kann man ja auch noch an diversen Konfigurations-Schräubchen drehen... wenn man weiß, wie und wo.
Außerdem ist es auch noch wichtig, was auf dem Server noch läuft. Andere, unabhängige Websites, ein Forum, ein Wiki, eine oder mehrere Datenbanken.
Und wieviel Bums der Server hat. "Echter" Root-Server, V-Server, zum Server umfunktionierter alter PC etc.
Was vielleicht auch nicht von Interesse ist: händische Installation oder Paketquellen (ich unterstelle mal, dass der Server unter Linux läuft
). Dann kann auch noch wichtig sein, was vernünftig vorkonfiguriert aus den Paketquellen kommt.
Gruß, noisefloor
ich weiß gar nicht, ob man die Frage so pauschal beantworten kann...
Je nach Anwendung und Server kann man ja auch noch an diversen Konfigurations-Schräubchen drehen... wenn man weiß, wie und wo.

Außerdem ist es auch noch wichtig, was auf dem Server noch läuft. Andere, unabhängige Websites, ein Forum, ein Wiki, eine oder mehrere Datenbanken.
Und wieviel Bums der Server hat. "Echter" Root-Server, V-Server, zum Server umfunktionierter alter PC etc.
Was vielleicht auch nicht von Interesse ist: händische Installation oder Paketquellen (ich unterstelle mal, dass der Server unter Linux läuft

Gruß, noisefloor