multithread webserver probleme

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Leonidas hat geschrieben:
gerold hat geschrieben:1.) Der Apache ist ein **sehr schneller** Webserver, der mit vielen gleichzeitigen Anfragen klar kommt und [...]
Apache ist laut diversen Benchmarks einer der langsameren Server [1][2][3], wobei er insbesondere bei statischen Dateien oft hinterher ist[...]
Hallo Leonidas!

:wink: Ich wage zu bezweifeln, dass in den Tests der Apache auf Geschwindigkeit getrimmt war und dass alle für die Tests unnötigen Module deaktiviert wurden. Ich schrieb ja auch, dass der Apache sich von DOS-Angriffen nicht so schnell in die Knie zwingen lässt. Ein Ansatz dafür ist, dass man auf sehr viele Anfragen von einer IP-Adresse langsamer reagiert. Ob das jetzt speziell auch der Fall bei den Benchmarks ist, kann ich nicht sagen, aber ich vermute es. -- Ich muss ja meine Aussage ein wenig verteidigen. :lol:

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

gerold hat geschrieben:Ich finde sowieso, dass es keinen besseren Einstieg in die Webprogrammierung mit Python gibt, als sich erst mal mit CGI zu befassen.
Das sehe ich auch so! CGI ist kein Jet mit Nachbrenner, aber es ist relativ direkt und man lernt sehr viel wichtiges Grundwissen zu Webservern, CGI, HTTP und mehr, das später oft hilfreich ist. Und wenn man ohnehin erst mit der Webprogrammierung anfängt, wird man kaum eine Website haben, die über CGI an Grenzen stößt.


Zu Lighttpd werfe ich noch Cherokee ins Rennen, der scheinbar etwas jünger ist, aber sonst vergleichbar (IIRC: "schnell", bringt FastCGI und SCGI mit, gleiche hässliche Config-Syntax wie Lighty). Hab ich ebenfalls installiert und er wartet ebenso wie Lighty darauf, genauer getestet zu werden. Letztlich macht man aber mit Apache auch nichts falsch.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Y0Gi hat geschrieben:Das sehe ich auch so! CGI ist kein Jet mit Nachbrenner, aber es ist relativ direkt und man lernt sehr viel wichtiges Grundwissen zu Webservern, CGI, HTTP und mehr, das später oft hilfreich ist. Und wenn man ohnehin erst mit der Webprogrammierung anfängt, wird man kaum eine Website haben, die über CGI an Grenzen stößt.
Man kann aber auch CGI mit WSGI nutzen. Das ist leider doch nicht ganz so gut dokumentiert, aber nach dem Hallo-Welt-CGI-Script sollte man wirklich bedenken WSGI zu verwenden. Schon allein wenn man schaut, was man als Middleware gratis dazubekommt ist es nützlich.
Y0Gi hat geschrieben:Zu Lighttpd werfe ich noch Cherokee ins Rennen, der scheinbar etwas jünger ist, aber sonst vergleichbar (IIRC: "schnell", bringt FastCGI und SCGI mit, gleiche hässliche Config-Syntax wie Lighty). Hab ich ebenfalls installiert und er wartet ebenso wie Lighty darauf, genauer getestet zu werden. Letztlich macht man aber mit Apache auch nichts falsch.
Wenn man nach "Cherokee HTTPD" sucht, bekommt man erstmal eine Menge Vulnerabilities. Die Homepage zu finden ist nicht ganz so einfach, aber sie sieht nicht übel aus (auch von den dort beschriebenen Features). Interessant warum man von dem so wenig hört. Und die Lighttpd ist gar nicht mal so übel, mit dem =~ Operator kann man einige Sachen ganz hübsch konfigurieren. Insgesamt erinnert mich die Syntax eher an eine Programmiersprache denn an eine ``httpd.conf``, finde ich als Programmierer aber akzeptabel.

Letztendlich muss jeder den HTTPd wählen der ihm passt - Apache ist keine schlechte Wahl. Lighttpd auch nicht und wie nginx und Cheerokee abschneiden werden Y0Gi und ich wohl noch schauen müssen :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Leonidas hat geschrieben:Man kann aber auch CGI mit WSGI nutzen.
Ich bin nicht sicher, welche Richtung du meinst, aber meines Wissens geht es in beide: Man kann sowohl WSGI-Applikationen über CGI deployen (mit entsprechenden Einschränkungen) als auch CGI-Scripte als WSGI-Applikation wrappen (ich meine bei Paste mal was derartiges gesehen zu haben).
Lambda
User
Beiträge: 25
Registriert: Freitag 27. April 2007, 17:11

danke erstmal für die replys. ich werde mir jetzt paralell CGI anschauen, allerdings werde ich den server weitermachen, ich werde dann nen performance test machen. für kleine projekte werde ich auf jedenfall meinen eignen python webserver verweden, der einfachheit halber.

nun zu CGI, da hätte ich noch paar fragen:

- CGI soll bei vielen connections langsamer sein, empfiehlt sich dann FCGI oder SCGI?
- Wo sind die unterschiede zwischen FCGI und SCGI, gibts da performance unterschiede?
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

CGI ist deshalb langsamer, weil für jeden Request eine neue Interpreter-Instanz gestartet wird.

FastCGI ist älter als SCGI, letzteres verwendet ein simpleres Interface. Letztlich nehmen sich aber beide praktisch wenig.
Lambda
User
Beiträge: 25
Registriert: Freitag 27. April 2007, 17:11

vielen dank :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Lambda hat geschrieben:- CGI soll bei vielen connections langsamer sein, empfiehlt sich dann FCGI oder SCGI?
CGI ist definitiv bei vielen Requests signifikant langsamer als FasttCGI oder SCGI (mit denen es bis auf den Namen kaum etwas zu tun hat). Es wird für jeden Request ein Interpreter gestartet, der eben die Entsprechende Vorlaufzeit benötigt. Das ist auch ein Grund, warum niemand Java über CGI verwendet, weil die Vorlaufzeit der Java-VM noch weitaus größer ist, als die der Python-VM.
Lambda hat geschrieben:- Wo sind die unterschiede zwischen FCGI und SCGI, gibts da performance unterschiede?
Performance-Unterschiede gibt es kaum, aber FastCGI ist älter und etwas komplizierter konzipiert. Aber über WSGI verhalten sich beide gleich. Letztendlich hängt die Wahl von deinem Webserver ab: FastCGI ist weit verbreitet, fast jeder Server hat zumindest ein Modul dafür (auch wenn beispielsweise die Module im Fall Apache nicht optimal maintained werden), SCGI hat dagegen eine noch etwas geringere Unterstützung, was sich aber langsam ändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten