2012-12-13 15 views
5

Ho guardato ai server web Python che offrono scalabilità e ho deciso di utilizzare Tornado (usato da Facebook FriendFeed) o Gevent. Dal momento che sono abbastanza nuovo a questo, ho fatto affidamento sullo Benchmark of Python Web Servers alla lista ristretta di Tornado e Gevent. Inoltre, dopo ulteriori ricerche ho scoperto che:gevent + gunicorn è scalabile e stabile per uso produttivo?

  • Gevent non è un server Web indipendente, è necessario utilizzare libevent o gunicorn come server Web.
  • libevent ha il suo pitfalls, ad esempio non supporta SSL, streaming, keep alive e websockets.
  • Non è disponibile alcun risultato di benchmarking in cui sia possibile trovare i documenti utilizzati dalle prestazioni di gevent e gunicorn.
  • L'autore di gevent ha consigliato a tutti di utilizzare gevent + gunicorn per la distribuzione effettiva.

mie esigenze:

  • Un server web pitone asincrona altamente scalabile.
  • Supporto SSL incluso.

Sono particolarmente inclinato verso gevent a causa del suo approccio basato su greenlet. Voglio solo alcuni fatti concreti per dimostrare che gunicorn + gevent è una buona scelta ed è altamente scalabile, in lega con Tornado. O c'è qualche altro server web Python che soddisfi i miei requisiti?

Mi punti nella giusta direzione.

risposta

12

partire da questa scrittura, Gunicorn è in beta (versione 0.16) e Gevent ha un candidato rilascio per 1.0 (Announcement on Google Groups), quindi potrebbe essere ragionevole aspettarsi cambiamenti di API (meno per Gevent) detto questo, a patto che si traccia le mailing list (qui: gunicorn, gevent) per le modifiche che potrebbero rompere la vostra applicazione, si dovrebbe andare bene con una distribuzione di produzione

Gunicorn + Gevent è una buona scelta per un pitone web asincrono server. Dovresti eseguire i tuoi test per confrontarlo con Tornado. Test di benchmark pubblicamente disponibili potrebbero essere fuorvianti in quanto l'applicazione potrebbe non comportarsi come quella sottoposta a benchmarking.

Per il supporto SSL, sia Gunicorn sia Tornado si consiglia di eseguirli dietro un proxy inverso come nginx. Ulteriori vantaggi di eseguirli dietro un proxy inverso includono una migliore gestione di slow clients e richieste HTTP errate

+2

Risposta eccellente. Solo una modifica per coloro che potrebbero leggerlo * oggi *: Gunicorn ora viene fornito con il supporto SSL. – Phil