[Python] Deploy di applicazione Django/Python3 con uwsgi su CentOS 7

Simone Dalla simodalla a gmail.com
Gio 23 Giu 2016 15:04:33 CEST


Il giorno 23 giugno 2016 14:30, Marco Santamaria
<marco.santamaria a gmail.com> ha scritto:
>
> Forse dall'oggetto si capisce già che la domanda è molto specifica, forse troppo.
>
> Sto effettuando il deploy di un progetto Django su una macchina CentOS e devo utilizzare uwsgi per la prima volta, avendo finora utilizzato solo Gunicorn in altri progetti.
>
> Il progetto utilizza Python 3.4 e già ho abilitato il repository EPEL per CentOS che lo metta a disposizione e già ho creato il virtual environment dove l'interprete Python è nella versione corretta.
>
> Mi chiedevo se qualcuno ha esperienza su un ambiente simile e mi può consigliare qual'è il modo migliore per installare e configurare uwsgi globalmente con il supporto a Python 3.4. Vorrei evitare di utilizzare uwsgi dentro il virtual environment perché sulla stessa macchina potrebbero essere installate diverse applicazioni Django, ciascuna con il suo virtual environment, e vorrei far partire un unico servizio uwsgi con systemd.
>
> Finora ho provato diverse soluzioni e l'unica che ha funzionato è quella che prevede l'installazione di uwsgi all'interno dell'environment:
>
> http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html
> https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-centos-7
> https://www.digitalocean.com/community/tutorials/how-to-set-up-uwsgi-and-nginx-to-serve-python-apps-on-centos-7


Ciao,

penso che uwsgi sia pacchettizzato per CentOs, su una Red Hat 7 tempo
fa ho utilizzato i comandi:

# yum install uwsgi uwsgi-plugin-python

premetto che la macchina mi era stata data già bella che pronta e non
so in che (e se) repository siano.

Come ha anche suggerito Marco puoi fare anche un:

# sudo pip install uwsgi

avendo avuto premura che il comando pip sia riferito al tuo python3.4
di sistema.

Detto tutto questo io sono solito e preferisco installare uwsgi su
ogni virtualenv in modo da poter aver versioni diverse per progetti
diversi, test e quant'altro. I vari uswgi (come gli altri servizi
collegati a django tipo celery) poi li controllo sempre superviord.

Se poi tutto il deploy lo automatizzi tramite sistemi tipo Ansible (o
similari) puoi scordarti sempre di più tipi di installazioni
"globali".

Un saluto,
Simone


-- 
Simone

"Software is like sex: it's better when it's free." Linus Torvalds

Registered Linux User #395060


Maggiori informazioni sulla lista Python