[Python] wsgi vs mod_python

Ivan dubzillan a gmail.com
Mar 28 Lug 2009 09:42:39 CEST


Grazie delle delucidazioni,
credo che approfondirò adeguatamente wsgi.

ciao
IDM

Il giorno 27 luglio 2009 10.53, Roberto De Ioris <roberto a unbit.it> ha
scritto:

> On Mon, 2009-07-27 at 09:26 +0200, Ivan wrote:
>
> >
> >
> >         Quali vantaggi/svantaggi ci sono nell'utilizzare mod_python
> >         anziché wsgi, con django ?
> >         Il tutto su Linux con apache.
> >
> >         Walter
> >
>
> E' un discorso lungo e come al solito e' impossibile stabilire quale dei
> 2 e' migliore. Provo a fartela il piu' facile possibile.
>
> Sono 2 approcci diversi con i loro pro e contro.
>
> WSGI e' uno standard, e' semplice, chiaro ed ha un solo obiettivo:
> rendere l'implementazione di una applicazione web indipendente dal tipo
> di webserver che risiedera' davanti. Stiamo parlando quindi di un
> protocollo non di una implementazione.
>
> mod_python invece e' una implementazione (simile a mod_php come logica
> di funzionamento), integra in apache un interprete python che si occupa
> di eseguire il codice richiesto.
>
> Ora, un bravo amministratore di sistema gia' si sentirebbe male al
> pensiero che il proprio webserver (che ricordo a tutti e' esposto al
> pubblico e quindi gia' di suo deve sostenere ogni tipo di attacco) venga
> "inquinato" da un nuovo modulo.
>
> A questo aggiungi che gli stai dicendo che il suo apache sara' ora in
> grado di eseguire codice di qualsiasi tipo (con i permessi di apache) e
> nella sua mente arrivera' la vocina del grillo parlante sysadmin che gli
> urla (con tanto di eco) "attenzioneeee stai introducendo una componente
> non deterministica in un server esposto al pubblicooooo....).
>
> Ora non voglio scatenare il panico ma se avete un webserver su cui fate
> eseguire script di altri sotto mod_php (o mod_python) ricordatevi che e'
> molto facile distruggere il vostro bel webserver. Indipendentemente da
> tutte le protezioni che il modulo possa includere.
>
> Questa e' la nota negativa di mod_python (qualcuno potrebbe aggiungere
> che si tratta di un modulo apache non molto utilizzato e quindi di per
> se' poco affidabile, ma su questa argomentazione non mi sento di
> esprimermi).
>
> Se pero' stai mettendo su un webserver con una sola applicazione python
> scritta da te l'equazione cambia e probabilmente il gioco VALE la
> candela. Almeno fin quando non decidi che apache (o Linux) ti fanno
> schifo e vuoi sostituirli.
>
> E' qui che WSGI ti da una mano. E' indipendente dal webserver (e
> ovviamente dal sistema operativo). Puoi spostare la tua app da un
> webserver a un altro (che supporti wsgi ovviamente) senza cambiare una
> sola riga di codice. Riconfiguri il webserver e sei operativo.
>
> Ma apache come comunica con una applicazione WSGI ?
>
> E' qui che entrano in gioco le implementazioni di server WSGI.
>
> Ci sono molti webserver wsgi scritti in python a cui le richieste
> vengono passate via http dal webserver (quindi un reverse proxy, piu'
> standard di cosi' si muore). Il webserver di CherryPy e' uno di questi.
>
> mod_wsgi per apache (di cui trovi una variante, sotto molti aspetti
> superiore, per nginx) puo' funzionare sia in maniera simile a mod_python
> (integrando l'interprete python in apache che si occupa di eseguire il
> modulo wsgi) o in modalita' "daemon" per cui viene generato uno o piu'
> processi (che possono girare con il loro uid) che si occupano di gestire
> le richieste che Apache gli passa attraverso un socket/pipe.
>
> Flup, e' un server WSGI che comunica con il webserver tramite
> FastCGI,SCGI e (udite udite) AJP.
>
> uWSGI (drin drin, pubblicita') e' un server WSGI in C che riceve le
> richieste da apache su socket UNIX tramite un semplice ed efficiente
> protocollo. Non fa della facilita' di utilizzo (come va di moda di
> questi tempi) il suo punto di forza, ma punta tutto sulle feuture e
> sull'affidabilita'.
>
> Ci sono altre decine di server (con i piu' svariati approcci), trovi
> l'elenco qui:
>
> http://www.wsgi.org/wsgi/Servers
>
>
> Ovviamente (punto non trascurabile) praticamente tutti i framework web
> in python (e molte applicazioni) sono compatibili wsgi. Ma e' anche vero
> che mod_python e' compatibile con qualsiasi cosa che sia scritta in
> python :)
>
> Cosa scegliere ? Io personalmente ho scommesso sull'approccio WSGI e
> come punto a suo favore posso aggiungere che nel mondo ruby (dove il
> deploy e' un totale incubo) si e' sviluppato Rack che e' pressocche'
> uguale a WSGI mentre mod_ruby e' stato praticamente relegato in un
> angolino buio e puzzolente.
>
> Il link che ti ha mandato prima Sandro e' sicuramente un ottimo punto di
> partenza.
>
>
> --
> Roberto De Ioris
> http://unbit.it
> JID: roberto a jabber.unbit.it
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20090728/9af07863/attachment.htm 


Maggiori informazioni sulla lista Python