MrNiceTry hat geschrieben:Kann Bottle seine Rechte abgeben?
Oder kann man das mit Bottle machen?
Irgend etwas muß es doch geben Bottle zu benutzen, oder ?
Nein, das kann Bottle in der "offiziellen" Version nicht. Ich habe einen Patch dazu geschrieben, der genau das ermöglicht [1], weil ich die selben Anforderungen hatte. (Möglichst leicht, nicht besonders performant auf Port 80 laufend). Der Patch wurde nicht übernommen und mein Repository ist nicht gepflegt. Ich würde dir davon abraten einfach die dortige Bottle Version zu übernehmen. Du könntest aber den Patch auf die aktuelle Bottle Version portieren. Für mehr Infos gibt es einen Thread [2] dazu.
Wenn man möglichst leichtgewichtig
und performant sein will, kann man statt dem WSGIRefServer den Tornado Adapter benutzen, dann ist die ganze Geschichte auch multithreaded. Damit funktioniert mein Patch aber (noch) nicht.
Alternativ kann ich dir cherokee empfehlen, den kann man ohne Einarbeitungszeit innerhalb weniger Minuten über ein Webfrontend konfigurieren und ist sehr leichtgewichtig, aber trotzdem vielseitig (uwsgi und fastCGI fähig). Das Webfrontend startet man nur zum Zweck der Konfiguration und wird anschließend beendet. Es gibt dort Assistenten für die gängigsten Aufgaben. Alles ziemlich selbsterklärend, aber halt doch wieder ein eigener Server vor dem Python-Prozess, wie bei nginx, Apache, lighttpd.
Ansonsten, wenn es ohne den Patch auskommen soll und ohne vorgeschalteten "ausgewachsenen" Webserver, habe ich sehr gute Erfahrungen mit Pound gemacht. Der macht nichts anderes als auf Port 80 zu laufen, die Anfragen entgegenzunehmen und lokal an Port 8080 (oder einen beliebigen anderen unpriviligierten Port) weiter zu reichen. Nennt sich dann http-proxy / load balancer. Da hast du dann zusätzlich zum Bottle Python Prozess noch <1 MiB im Speicher. Wenn du dann noch Bottle mit Tornado nutzt, hast du eine superschnelle und leichtgewichtige Kombi. Pound gibts im Ubuntu Repo und Tornado sind nur ein paar .py Dateien, die du in das Verzeichnis mit der bottly.py wirfst.
[1]
http://github.com/uKev/bottle/commit/5c ... b3156db759
[2]
http://www.python-forum.de/viewtopic.php?t=21221