[Python] python 2-3 e CGI
Davide Muzzarelli
d.muzzarelli a dav-muz.net
Sab 8 Apr 2017 17:27:13 CEST
On 06/04/2017 21:03, Franky gmail wrote:
> Chiedo subito un parere in merito alla creazione di un portale che farà
> tantissime query su db mysql2.6 (il perchè della versione lo spiegherò
> magari dopo)
> le risorse che userò saranno python2.7 mysql2.6 apache2.
> Tengo a precisare che ho delle discrete conoscenze dei summenzionati
> 'prodotti' e ho già pronta la lista della spesa (PIL, connettori per db
> ecc). Il solo dubbio che mi rimane e il modulo da usare (CGI, mod-python
> o fast-cgi) i predetti moduli mi servono per interagire con la parte
> grafica.
CGI è lento perché esegue lo script da capo ad ogni singola richiesta.
mod_python è inefficiente.
FastCGI va bene, WSGI sarebbe più adatto a Python.
> Anticipo che non intendo utilizzare alcun framework (zope, jango ecc).
Se non vuoi un framework puoi utilizzare la libreria Werkzeug, è solida
e performante. Anni fa fa ci ho costruito sopra un framework e mi sono
trovato bene.
http://werkzeug.pocoo.org/
Diversamente puoi utilizzare direttamente WSGI con uWSGI o Gunicorn.
Entrambi mettono a disposizione non solo l'interfaccia uWSGI ma anche il
sistema per gestire i processi. Sono molto performanti, Gunicorn l'ho
trovato più stabile.
https://github.com/unbit/uwsgi
http://gunicorn.org/
Bjoern sembra invece il sistema WSGI in assoluto più veloce. E' scritto
in C ma non l'ho mai provato.
https://github.com/jonashaag/bjoern
A questo punto se vuoi prestazioni migliori a livello di stack
bisognerebbe passare a:
- Python > 3.4: per via della nuova libreria AsyncIO;
- Postgresql: sfrutta meglio CPU multiple e puoi organizzare meglio i
dati per un accesso più veloce;
- Nginx: è meno completo ma più veloce di Apache (nulla vieta di usarli
contemporaneamente);
- Redis: per dati temporanei di frequente accesso (tipo le sessioni o il
rate limiting) e funge anche da cache.
Buon w/e,
Davide Muzzarelli
Maggiori informazioni sulla lista
Python