Serverwahl

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
script_composer
User
Beiträge: 29
Registriert: Mittwoch 13. April 2011, 12:42

Hallo an alle,

ich bin derzeit etwas ratlos. Würde mich über brauchbare Tips und Bewertungen meiner Überlegungen sehr freuen.

Mein Ziel ist es sowohl Zen Cart als auch mehrere Websites mit Python online zu bringen. Geschwindigkeit und Sicherheit sind mir sehr wichtig und gerade weil ich nicht der "Pro" schlechthin bin bin ich froh über jede Arbeit die mir vom Hoster abgenommen wird. Daher wäre ich Shared Hosting nicht abgeneigt. Leider findet man bei fast allen günstigen Hostern kaum Informationen auf welche Weise Python verfügbar ist. Wollte erst ein Paket bei Alfahosting mieten, weil die wirklich günstig sind und gut bewertet wurden. Allerdings kann man nicht herausfinden über welche Schnittstelle (CGI, fastCGI, mod_wsgi) das implementiert ist und um welche Version von Python es sich handelt. Hat jemand evt. Erfahungen mit Alfahosting? Oder kann mir jemand eine günstige (um 5 Euro) Alternative nennen?

Meine andere Überlegung war es einfach einen vServer für 10 Euro zu nehmen. Da ich mehrere Websites darüber laufen lassen möchte sollte der Server an sichmöglichst Ressourcen schonend sein. Nginx scheint da die richtige Alternative. Apache soll ja relativ Ressourcenfressend sein. Abgesehen davon: welche Schnittstelle soll ich nehmen? Apache (mod_wsgi, FastCGI) oder Nginx(auch irgendwas mit wsgi).
Ist ein VServer sehr schwer sicher zu konfigurieren? Habe bereits einen für jemand anderen gemietet, dem Sicherheit nicht gaaanz so wichtig ist wie mir und habe dort ein bisschen Erfahrung mit Konfiguration über SSH gesammelt. Aber auch nur wenig. Wie sicher sollte so ein vServer für einen Webshop überhaupt sein?

Fragen über Fragen auf die ich keine Antwort weiß ;)
Benutzeravatar
script_composer
User
Beiträge: 29
Registriert: Mittwoch 13. April 2011, 12:42

Mittlerweile bin ich ein wenig weiter...

Habe Alfahosting ausgeschlossen, da die nur CGI anbieten. Habe allerdings immer noch die Option zwischen Hetzner welches FastCGI nutzt oder einem vServer. Ich wollte nun mal fragen: Was ist eigentlich schneller/sinnvoller: FastCGI oder mod_WSGI?
Ist es Sinnvoll einen vServer statt dem Hosting für 10Euro bei Hetzner zu nehmen um beispielsweise schnelle Server wie fapws3 nutzen zu können? Oder kennt Ihr eine Empfehlung für einen Server, der sowohl Python als auch php und SSL unterstützt? Möglichst schnell und sicher sollte dieser dann bei beidem sein.

So wie ich glaube gelesen zu haben ist FastCGI nicht so schnell wie mod_wsgi. Stimmt das? Oder sollte ich direkt nen load balancer nehmen, der die Requests an 2 versch. Server weiterleitet? Wäre aber evt. unter dem Gesichtspunkt Speicherverbrauch nicht so optimal... Mhhhh
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

ein paar Anmerkungen von mir.

Sicherheit
Eigentlich ist jede der gängigen Linux-Distros (die sind auf den meisten vServern ja drauf) nach der Installation "sicher". Unsicher wird es in der Regel erst, wenn du zusätzliche Software installierst. Das an sich ist eigentlich noch nicht unsicher, sondern erst dann, wenn du Paketquellen verwendest, die selten Updates bekommen (z.B. 'universe' unter Ubuntu) oder selber Webanwendung von Hand installierst und die selber um das einspielen der Patche kümmern muss. Oder natürlich grob falsch an den Config-Dateien editierst.
Falls jemand wider erwarten Root-Zugriff auf deiner Server bekommt, weil du z.B. ein zu schwaches Passwort hast. dass sich einfach per Brute-Force Attacke herausfinden lässt, dann hast du so oder so verloren.
Dieser Fall ist aber selten vor, weil das dann ein ganz gezielter Angriff wäre. Gängigere Praxis ist AFAIK, dass ein böser Mensch, der einen Bot braucht, einen Suchbot durch's Web schickt und nach Installation von (Web-) Software mit bekannten Schwachstellen sucht - also in der Regel Software, welche nicht gepacht wurde.

Performance
Frage: Wie viele Hits pro Stunde erwartest du denn? Wenn du schon von einem Load-Balancer sprichst, dann muss du aber mächtig viele Besucher haben... Grundsätzlich sind die meisten Webserver schnell genug für statische Seiten und dynamisch generierte Seiten. Wenn ein Skript sehr lange (mehrere Sekunden) brauchen sollte, um ein Ausgabe zu produzieren, dann sollte man sich eher über das Backend Gedanken machen, also wie man welches Skript abgearbeitet wird (z.B. Einsatz von Celery).

Server
Standard unter Python ist mod_wsgi. Daran kannst du jede halbwegs moderne Python Websoftware und jedes halbwegs moderne Webframework anbinden. Sicherlich geht in den meisten Fällen auch fast_cgi, aber pft muss du die Webanwendung dann erstmal von WSGI auf CGI "umbiegen".
Apache ist sicherlich nicht "schlank", hat aber den Vorteil, dass er extrem weit verbreitet ist und die entsprechend viele Infos für alle möglichen (und unmöglichen) Anwendungsfälle im Web findest. Wenn's alleine um WSGI Anwendungen geht, dann gibt es auch ein paar Alternativen wie z.B. gunicorn, Flup oder Paste (es gibt noch mehr, aber da fallen mir gerade die Namen nicht ein...).

Gruß, noisefloor
deets

Ich wuerde zu NGINX, sowie supervisord+Paste oder phusion passenger um die WSGI-apps als eigenstaendige

Apache ist IMHO viel zu nervend zu konfigurieren, und auf vServern schnell zu dick. Meiner ist jedenfalls regelmaessig eingefroren deswegen.
Benutzeravatar
script_composer
User
Beiträge: 29
Registriert: Mittwoch 13. April 2011, 12:42

Ok Load Balancer ist wohl etw. übertrieben. Meinte eig. vHosts. Wir haben mit dem Webshop derzeit vielleicht 2 Besucher pro Tag. Aber wir stehen ja noch am Anfang und der Shop soll wachsen! Und da setze ich lieber direkt auf die "schnellste" Variante die Sinnvoll ist.

Aber mein "Cheffe" meinte eben eh, dass das erst mal verschoben wird weil die Kapazitäten nicht reichen. Mhhh aber für mich ist es trotzdem interessant!!! Schonmal danke für die tollen Antworten.

Das ist gut, dass es mit der Sicherheit bei vServer doch nicht so schlecht steht. Weil das ist für Python derzeit ja die beste Lösung.

@ deets: Auf der Seite von NGINX wird von passenger abgeraten weil der wohl nur bis 0.6 funktioniert hat. Kann es aber auch falsch verstehen. Was wäre denn so die schnellste Stabile lösung?

@ all: Nur mal so weil ich in Zukunft mal ein BG programmieren will: Für Wieviele User bei einem Browsergame könnte ein vServer reichen. Soll so in die richtung Ogame/Space-Pioneers gehen. Bzw. hat jemand Erfahrungen welche Klickraten/Sekunde so ein vServer aushält?
deets

@script_composer

Waere mir neu, dass es nicht mit neueren versionen geht:

http://blog.phusion.nl/2011/04/14/phusi ... -released/

Und was deine Skalierungen angeht: komm erstmal dahin, das es kracht. Dann hast du genug Leute, die dir nen Euro im Monat fuer eine dedizierte Kiste geben koennen.
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Ich kann aus eigener Erfahrung pyrox.eu empfehlen.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

@script_composer: Wichtiger ist bei der Programmierung des BG IMHO, dass es direkt so angelegt ist, dass es gut skalieren kann. Weil es nützt ja nichts, wenn du einen dicken Server oder einer Serverfarm hast und du dein Prog erst mal neu schreiben musst, weil es nicht skaliert.

Gruß, noisefloor
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

ahojnnes hat geschrieben:Ich kann aus eigener Erfahrung pyrox.eu empfehlen.
seconded! Traumhafter Support und Apache+mod_wsgi
Antworten