Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-22 Per discussione Roberto De Ioris

 2015-03-20 12:35 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 [...]


 
  Sarebbe comodo se fosse possibile con clone di Linux, dire al kernel
 di
  non
  mappare nel processo figlio una certa regione di memoria,
  ed usare questa regione per memorizzare tutte le variabili usate per
 la
  sincronizzazione.  Ma anche se fosse possibile, probabilmente gli
  sviluppatori di Go non la userebbero perchè aumenta la complessità.


 proponila alla lkml, a me gia' ha fatto venire in mente diversi usi :)


 Ripensandoci, non è già possibile con
 p = mmap(NULL, length, PROT_READ | PROT_WRITE, MAP_ANONYMOUS |
 MAP_PRIVATE,
 -1, 0)
 ?



 Dalla pagina del manuale non mi è chiaro se un processo figlio eredita la
 regione di memoria.



La eredita ma in COW, quindi appena il figlio ci scrive viene generata una
nuova pagina (quindi praticamente non e' utilissima senza un file da
mappare)

-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-21 Per discussione enrico franchi
On Fri, Mar 20, 2015 at 8:41 PM, Nicola Larosa n...@teknico.net wrote:

 Qui probabilmente Enrico non intendeva che vai in vacca, ma piuttosto
 Copy-On-Write http://en.wikipedia.org/wiki/Copy-on-write. ;-)


Ovviamente. Ma il pun era irresistibile. :)


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-21 Per discussione Roberto De Ioris

 Allora ho seguito le istruzioni ma uwsgi non ne vuole sapere di partire.
 Il
 log file e' desolantemente vuoto, ho provato anche con /etc/init.d/uwsgi
 restart. Continuo a pensare che sia meglio il mestiere del piadinaro
 ambulante, alla fine.

 Carlos



Il fatto che parli di /etc/init.d/uwsgi mi lascia molto molto perplesso
(upstart e' il tuo unico obiettivo visto che sei su ubuntu.)

Hai seguito il quickstart che ti ho linkato da cima a fondo ? Ti e' tutto
chiaro ?

Ricapitolando:

- accertati di aver costruito un file di config decente, per cui se lanci
(da utente non privilegiato)

uwsgi nomefile.ini

hai l'output su terminale e ti puoi collegare con il browser alla porta
specificata con successo.

Un file di esempio (cambia django_project e percorso_di_wsgi.py con la
dir/file del progetto):

[uwsgi]
; avvia il server http sulla porta 8080
http = :8080
; cambia la directory nel progetto di django
chdir = django_project
; abilita il master
master = true
; metti 4 processi per avere un po' di concorrenza
processes = 4
; carica django
wsgi-file = percorso_di_wsgi.py


Quando funziona, ti fermi un attimo perche' dovrai prendere delle decisioni:

- con che utente e gruppo lo faccio girare (accertati che l'utente possa
leggere i file del progetto) ?
- dove voglio loggare (file, syslog, socket ...) (accertati che l'utente
possa creare/leggere/scrivere il file di log, in caso sia un file)?

ipotizziamo che l'utente sia pippo e il gruppo pluto e che vuoi loggare in
/var/log/uwsgi.log (ipotizzando che il tuo utente possa creare file dentro
/var/log, altrimenti usa /tmp o la dir del progetto). Aggiungi al file
.ini:

uid = pippo
gid = pluto
logto = /var/log/uwsgi.log


E rilancia (sempre da terminale):

uwsgi nomefile.ini

se tutto va bene vedrai solo un annuncio che il file .ini e' stato letto e
poi il terminale restera' appeso.

Apri il file di log e controlla che ci sia tutto.

Se c'e' tutto resta solo di sistemare upstart.

Crea /etc/init/uwsgi.conf

# simple uWSGI script

description uwsgi tiny instance
start on runlevel [2345]
stop on runlevel [06]

exec uwsgi --die-on-term percorso_assoluto_al_file.ini


(--die-on-term ti serve fino a 2.0, se stai usando uWSGI 2.1 il problema
dell'uso idiota di SIGTERM e' stato risolto)


Questo e' un setup minimale, tutto il resto viene dopo.

-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-21 Per discussione Carlos Catucci
Allora ho seguito le istruzioni ma uwsgi non ne vuole sapere di partire. Il
log file e' desolantemente vuoto, ho provato anche con /etc/init.d/uwsgi
restart. Continuo a pensare che sia meglio il mestiere del piadinaro
ambulante, alla fine.

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-21 Per discussione Giovanni Di Noia
2015-03-21 13:38 GMT+01:00 Carlos Catucci carlos.catu...@gmail.com:


 Continuo a pensare che sia meglio il mestiere del piadinaro ambulante,
 alla fine.

Naa, prova con questo
https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps

se ci son riuscito io..
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-21 Per discussione enrico franchi
2015-03-20 22:01 GMT+00:00 Roberto Polli robipo...@gmail.com:

 Il 20 marzo 2015 19:18, enrico franchi enrico.fran...@gmail.com ha
 scritto:
  e tra l'altro oom killer potenzialmente potrebbe ammazzarmi il padre
 invece
  del figlio, cosa non gradevole).

 Non sei obbligato ad oom-killer però :)


Non sono obbligato. Ma in generale mi e' comodo.


 Per la swap...fatteli mette du' banchi de ram in più :P


Ehm... 2 banchi x troppe macchine = troppi banchi ;)

Tra l'altro, in pratica, quello che potrei fare e' prendere direttamente
macchine piu' grosse (per ovvi motivi sarebbe ingestibile avere tutto
completamente customizzato). Ma poi finirebbe che mi secca avere un sacco
di RAM li a prendere polvere, quindi inventerei qualcosa da farci e siamo
punto a capo.

In effetti trovo semplicemente che, in molti casi, fare il fork per dumpare
il database, sebbene sia una scelta progettuale molto elegante dal punto di
vista della programmazione sia una strategia complicata da fare filare
liscia quando si fanno operations. Specie perche' per me i se diventano
quando e i puo' diventano quanti.

-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-21 Per discussione Carlos Catucci
2015-03-21 0:15 GMT+01:00 Giuseppe Saviano g.savi...@gmail.com:

 Ciao Carlos,

 ti ha gia` risposto il papa` di uWSGI, quindi io non potrei consigliarti
 meglio,
 mi permetto solo di rimandarti a qualche riga che ho scritto qualche tempo
 fa.

 https://bitbucket.org/sgs/djangodeploy/src/

 Non posso assicurarti che funzioni, ma su un Ubuntu 14.04 appena
 installato,
 una volta, ha funzionato :-)
 Lo script deploy.py e` testato men che zero, era giusto un test e non
 usa fabric,
 ma nel readme gli step da seguire dovrebbero esserci tutti.

 Con versioni precedenti di Ubuntu, il pacchetto apt mi ha dato qualche
 rogna,
 ma nella 14.04 sembra andar liscio e ti regala il service per l'avvio al
 boot.


Non so come ringraziarvi, per me e' un autentico rompicapo.

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-20 Per discussione Manlio Perillo
2015-03-19 17:08 GMT+01:00 Roberto De Ioris robe...@unbit.it:


  2015-03-19 17:01 GMT+01:00 Roberto De Ioris robe...@unbit.it:
 
  [...]
 
  Comunque credo che tutti gli
  application server piu' utilizzati possano fare il dropping dei
  privilegi
  dopo aver fatto il bind sulla 80
 
 
  Non proprio tutti:
  https://github.com/golang/go/issues/1435
 
 
 


 vabbe' dai, il runtime di go e' talmente atipico che questi problemi gli
 si perdonano :) (e te lo dice uno che qualche anno fa si e' pesantemente
 incazzato per via del fatto che non vogliono supportare fork() come dio
 comanda)


Ho trovato il thread su golang-nuts.

Cosa intendi che senza fork non funziona mmap?


Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-20 Per discussione Roberto De Ioris

 2015-03-19 17:08 GMT+01:00 Roberto De Ioris robe...@unbit.it:


  2015-03-19 17:01 GMT+01:00 Roberto De Ioris robe...@unbit.it:
 
  [...]
 
  Comunque credo che tutti gli
  application server piu' utilizzati possano fare il dropping dei
  privilegi
  dopo aver fatto il bind sulla 80
 
 
  Non proprio tutti:
  https://github.com/golang/go/issues/1435
 
 
 


 vabbe' dai, il runtime di go e' talmente atipico che questi problemi
 gli
 si perdonano :) (e te lo dice uno che qualche anno fa si e' pesantemente
 incazzato per via del fatto che non vogliono supportare fork() come dio
 comanda)


 Ho trovato il thread su golang-nuts.

 Cosa intendi che senza fork non funziona mmap?




mi riferisco a mmap(..., MAP_SHARED, ...) che e' la base di tantissime
tecnologie (tra cui postgresql). Il succo e' che se mi vendi un linguaggio
come 'di sistema' e poi non ci posso riscrivere il mio postgres ci rimango
un po' male :)

-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-20 Per discussione Manlio Perillo
2015-03-20 11:58 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 [...]

 
  Ho trovato il thread su golang-nuts.
 
  Cosa intendi che senza fork non funziona mmap?
 
 


 mi riferisco a mmap(..., MAP_SHARED, ...) che e' la base di tantissime
 tecnologie (tra cui postgresql). Il succo e' che se mi vendi un linguaggio
 come 'di sistema' e poi non ci posso riscrivere il mio postgres ci rimango
 un po' male :)


L'idea è che postgresql usa un processo per ogni connessione, mentre in Go
useresti una goroutine.

Un uso di fork molto utile/comodo, IMHO, è quello che ne fa redis quando
effettua il dump del database su file.
Usando fork non ha bisogno di sincronizzare l'accesso al database,
potenzialmente rallendando o bloccando eventuali lettori/scrittori.

Anche la demonizzazione, non la vedo come una mancanza grave.
Con systemd, ad esempio, sembra non sia più necessaria.

Sarebbe comodo se fosse possibile con clone di Linux, dire al kernel di non
mappare nel processo figlio una certa regione di memoria,
ed usare questa regione per memorizzare tutte le variabili usate per la
sincronizzazione.  Ma anche se fosse possibile, probabilmente gli
sviluppatori di Go non la userebbero perchè aumenta la complessità.

Alla fine, comunque, credo che a Go manchi un nuovo tipo di sistema
operativo, oppure per gli sviluppatori sistema significa Plan9
(su questo punto ho letto di molte critiche).


Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-20 Per discussione Roberto De Ioris


 L'idea è che postgresql usa un processo per ogni connessione, mentre in Go
 useresti una goroutine.



hmm, mamma mia, mi darebbe la stessa fiducia di mysql che e' multithread :)



 Un uso di fork molto utile/comodo, IMHO, è quello che ne fa redis quando
 effettua il dump del database su file.
 Usando fork non ha bisogno di sincronizzare l'accesso al database,
 potenzialmente rallendando o bloccando eventuali lettori/scrittori.


giusto, non ci avevo pensato


 Anche la demonizzazione, non la vedo come una mancanza grave.
 Con systemd, ad esempio, sembra non sia più necessaria.


infatti non credo di averla mai citata, anzi e' una di quelle cose di unix
che mi ha sempre fatto abbastanza schifo :)


 Sarebbe comodo se fosse possibile con clone di Linux, dire al kernel di
 non
 mappare nel processo figlio una certa regione di memoria,
 ed usare questa regione per memorizzare tutte le variabili usate per la
 sincronizzazione.  Ma anche se fosse possibile, probabilmente gli
 sviluppatori di Go non la userebbero perchè aumenta la complessità.


proponila alla lkml, a me gia' ha fatto venire in mente diversi usi :)


 Alla fine, comunque, credo che a Go manchi un nuovo tipo di sistema
 operativo, oppure per gli sviluppatori sistema significa Plan9
 (su questo punto ho letto di molte critiche).


in realta' a me go va benissimo cosi', ho imparato a considerarlo un
linguaggio via di mezzo. Non sostituisce in toto C, non sostituisce in
toto Python. E' un altro livello.


-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-20 Per discussione Giuseppe Saviano
 Per farla breve sono alla frutta (niente banane, grazie!). Qualcuno ha un
 link ad un tutorial fatto bene davvero che poi funziona? Il server e' un
...

Ciao Carlos,

ti ha gia` risposto il papa` di uWSGI, quindi io non potrei consigliarti meglio,
mi permetto solo di rimandarti a qualche riga che ho scritto qualche tempo fa.

https://bitbucket.org/sgs/djangodeploy/src/

Non posso assicurarti che funzioni, ma su un Ubuntu 14.04 appena installato,
una volta, ha funzionato :-)
Lo script deploy.py e` testato men che zero, era giusto un test e non
usa fabric,
ma nel readme gli step da seguire dovrebbero esserci tutti.

Con versioni precedenti di Ubuntu, il pacchetto apt mi ha dato qualche rogna,
ma nella 14.04 sembra andar liscio e ti regala il service per l'avvio al boot.

G.
-- 
$ gpg --recv-key da5098a7
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-20 Per discussione Carlos Catucci
2015-03-20 15:03 GMT+01:00 Manlio Perillo manlio.peri...@gmail.com:

 Su questo punto ha un solo grande problema: non è interoperabile con C e
 non è interoperabile con Python, a meno di non usare gccgo.


Ma e' interoperabile con qualcosa che non sia go?

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-20 Per discussione enrico franchi
2015-03-20 11:35 GMT+00:00 Manlio Perillo manlio.peri...@gmail.com:


 L'idea è che postgresql usa un processo per ogni connessione, mentre in Go
 useresti una goroutine.


+1


 Un uso di fork molto utile/comodo, IMHO, è quello che ne fa redis quando
 effettua il dump del database su file.
 Usando fork non ha bisogno di sincronizzare l'accesso al database,
 potenzialmente rallendando o bloccando eventuali lettori/scrittori.


Gia'. Non mi sono chiare fino in fondo le implicazioni della scelta,
tuttavia.
Quello che io mi aspetto, ma potrei sbagliare, e' che vai in COW, ma
siccome il padre continua a fare modifiche (potenzialmente), hai lazy copy
*effettiva*.  Il che vuole dire che potenzialmente potresti raddoppiare la
RAM in uso (che tipo mi abbatterebbe la macchina per lo swap -- e tra
l'altro oom killer potenzialmente potrebbe ammazzarmi il padre invece del
figlio, cosa non gradevole).

Tra l'altro apparentemente usare huge_pages rende tutto piu' lento, cosa
che non mi spiego.


 Anche la demonizzazione, non la vedo come una mancanza grave.
 Con systemd, ad esempio, sembra non sia più necessaria.


Come dicevo... e' tempo che non metto in produzione qualcosa che usa la sua
auto-demonizzazione.
Pero' e' comunque un peccato.



 Sarebbe comodo se fosse possibile con clone di Linux, dire al kernel di
 non mappare nel processo figlio una certa regione di memoria,
 ed usare questa regione per memorizzare tutte le variabili usate per la
 sincronizzazione.  Ma anche se fosse possibile, probabilmente gli
 sviluppatori di Go non la userebbero perchè aumenta la complessità.

 Alla fine, comunque, credo che a Go manchi un nuovo tipo di sistema
 operativo, oppure per gli sviluppatori sistema significa Plan9
 (su questo punto ho letto di molte critiche).


+1


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-20 Per discussione enrico franchi
2015-03-20 10:58 GMT+00:00 Roberto De Ioris robe...@unbit.it:


 mi riferisco a mmap(..., MAP_SHARED, ...) che e' la base di tantissime
 tecnologie (tra cui postgresql). Il succo e' che se mi vendi un linguaggio
 come 'di sistema' e poi non ci posso riscrivere il mio postgres ci rimango
 un po' male :)


A me verrebbe da dire che alla fine dei conti Go *non* e' un linguaggio di
sistema.
Ci puoi fare molte cose che ti aspetteresti da un linguaggio di sistema, ce
le puoi fare anche bene, spesso meglio che in C... ma alla fine non e' un
linguaggio di sistema. Per lo meno, non secondo la mia accezione.

Non che sia un difetto di Go. Credo che discenda da scelte progettuali
esplicite (e che rendono tante cose belle belle).


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-20 Per discussione Nicola Larosa
enrico franchi wrote:
 Quello che io mi aspetto, ma potrei sbagliare, e' che vai in COW

Qui probabilmente Enrico non intendeva che vai in vacca, ma piuttosto
Copy-On-Write http://en.wikipedia.org/wiki/Copy-on-write. ;-)

-- 
Nicola 'tekNico' Larosa http://www.tekNico.net/

Look at the poor New Agers. Christianity developed defenses against
criticism, arguing for the wonders of faith; New Agers culturally
inherit the cached thought that faith is positive, but lack Christian-
ity's exclusionary scripture to keep out competing memes. New Agers
end up in happy death spirals around stars, trees, magnets, diets,
spells, unicorns... - Eliezer Yudkowsky, 2007

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-20 Per discussione Roberto Polli
Il 20 marzo 2015 19:18, enrico franchi enrico.fran...@gmail.com ha scritto:
 e tra l'altro oom killer potenzialmente potrebbe ammazzarmi il padre invece
 del figlio, cosa non gradevole).

Non sei obbligato ad oom-killer però :)
Per la swap...fatteli mette du' banchi de ram in più :P

Pace,
R.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 pero' che due maroni.
 Ho sempre usato hosting (tipo Alwaysdata) che mi danno la possibilita' di
 deployare un progetto Django senza dover impazzie troppo. Al massimo
 richiedono una specigfica struttura nell'albero delel directories, tipo
 mettere static in root del progetto oppure nelal cartella dove riside
 anche
 settings.py, per dire.
 Stavolta devo deployare su un server su cui o pieno accesso.
 Primo tentativo: nginx+uwsgi. Non va neppure se lo prendo a calci sui
 denti.
 Secondo tentativo: siccome le cose non vanno aggiungiamo un layer di
 complessita', per farci del male. Ho provato a mettere Gunicorn. Sara' che
 non sono una giovane fanciulla vergine, ma nessun risultato apprezzabile.
 Bene mi sono detto, torniamo sul caro vecchio Apache2. Assieme al suo
 modulo mod_wsgi dovrei avere vita facile (memore dei tempi in cui usavo il
 poco efficiente mod_pthon ma che andava liscio).
 Per farla breve sono alla frutta (niente banane, grazie!). Qualcuno ha un
 link ad un tutorial fatto bene davvero che poi funziona? Il server e' un
 Ubuntu Server 10.04.



Guarda questo di solito fa' contenti tutti:

http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html

ma seguilo passo passo (quindi non usare i pacchetti di ubuntu,
soprattutto della versione obsoleterrima che stai usando)

Visto che la distribuzione non e' piu' supportata ipotizzo che sei in una
lan, quindi nginx puoi anche evitartelo. Una volta che l'app gira su
uWSGI, fermati li' :)


-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Marco Santamaria
MI inserisco in questa discussione, visto l'intervento di Roberto che di
uwsgi ne sa qualcosa :)

Per il deploy di un piccolo applicativo in Django che gestisce delle
immagini in una intranet aziendale ho scelto di usare gunicorn+nginx,
soprattutto per la facilità di configurazione, ma sono ai primi passi e
faccio in tempo a cambiare idea.

Che vantaggi avrei a usare uwsgi?

Grazie,
Marco

Il giorno 19 marzo 2015 11:24, Roberto De Ioris robe...@unbit.it ha
scritto:


  pero' che due maroni.
  Ho sempre usato hosting (tipo Alwaysdata) che mi danno la possibilita' di
  deployare un progetto Django senza dover impazzie troppo. Al massimo
  richiedono una specigfica struttura nell'albero delel directories, tipo
  mettere static in root del progetto oppure nelal cartella dove riside
  anche
  settings.py, per dire.
  Stavolta devo deployare su un server su cui o pieno accesso.
  Primo tentativo: nginx+uwsgi. Non va neppure se lo prendo a calci sui
  denti.
  Secondo tentativo: siccome le cose non vanno aggiungiamo un layer di
  complessita', per farci del male. Ho provato a mettere Gunicorn. Sara'
 che
  non sono una giovane fanciulla vergine, ma nessun risultato apprezzabile.
  Bene mi sono detto, torniamo sul caro vecchio Apache2. Assieme al suo
  modulo mod_wsgi dovrei avere vita facile (memore dei tempi in cui usavo
 il
  poco efficiente mod_pthon ma che andava liscio).
  Per farla breve sono alla frutta (niente banane, grazie!). Qualcuno ha un
  link ad un tutorial fatto bene davvero che poi funziona? Il server e' un
  Ubuntu Server 10.04.
 
 

 Guarda questo di solito fa' contenti tutti:

 http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html

 ma seguilo passo passo (quindi non usare i pacchetti di ubuntu,
 soprattutto della versione obsoleterrima che stai usando)

 Visto che la distribuzione non e' piu' supportata ipotizzo che sei in una
 lan, quindi nginx puoi anche evitartelo. Una volta che l'app gira su
 uWSGI, fermati li' :)


 --
 Roberto De Ioris
 http://unbit.com
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Antonio Conte
* 19/03/2015, Carlos Catucci wrote :
pero' che due maroni.
Ho sempre usato hosting (tipo Alwaysdata) che mi danno la possibilita'
di deployare un progetto Django senza dover impazzie troppo. Al massimo
richiedono una specigfica struttura nell'albero delel directories, tipo
mettere static in root del progetto oppure nelal cartella dove riside
anche settings.py, per dire.
Stavolta devo deployare su un server su cui o pieno accesso.
Primo tentativo: nginx+uwsgi. Non va neppure se lo prendo a calci sui
denti.

io uso nginx+uwsgi (emperor) con piu' webapp Pylons+Pyramid e funziona; ti 
passo di
seguito un esempio di configurazione; il file .ini e' lo standard 
Pylons/Pyramid.

nginx:

server {
...

location / {
include /etc/nginx/uwsgi_params;
uwsgi_param SCRIPT_NAME '';
uwsgi_read_timeout 180;
uwsgi_pass_request_headers on;
uwsgi_pass 127.0.0.1:5011;
}
}

uwsgi_params:
uwsgi_param  QUERY_STRING   $query_string;
uwsgi_param  REQUEST_METHOD $request_method;
uwsgi_param  CONTENT_TYPE   $content_type;
uwsgi_param  CONTENT_LENGTH $content_length;

uwsgi_param  REQUEST_URI$request_uri;
uwsgi_param  PATH_INFO  $document_uri;
uwsgi_param  DOCUMENT_ROOT  $document_root;
uwsgi_param  SERVER_PROTOCOL$server_protocol;
uwsgi_param  HTTPS  $https if_not_empty;
uwsgi_param  UWSGI_SCHEME   $scheme;

uwsgi_param  REMOTE_ADDR$remote_addr;
uwsgi_param  REMOTE_PORT$remote_port;
uwsgi_param  SERVER_PORT$server_port;
uwsgi_param  SERVER_NAME$server_name;

uwsgi:
uwsgi
socket0.0.0.0:5011/socket
pluginspython27/plugins
uidutentemio/uid
gidutentemio/gid
virtualenv/home/utentemio/projects/virtualenv
mastertrue/master
processes4/processes
harakiri180/harakiri
post-buffering1000/post-buffering
vacuumtrue/vacuum
ini-paste/home/utentemio/projects/acme/acme.ini/ini-paste
chdir/home/utentemio/projects/acme/chdir
envPYTHON_EGG_CACHE=/home/utentemio/tmp/env
pythonpath/home/utentemio/projects/acme/pythonpath

pythonpath/home/utentemio/.local/lib/python2.7/site-packages/pythonpath

pythonpath/home/utentemio/projects/lib/python2.7/site-packages/pythonpath
pythonpath/usr/lib/python2.7/site-packages/pythonpath
/uwsgi

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 Beh, probabilmente nessuno, come non hai probabilmente nessun vantaggio
 a
 usare nginx in una intranet, gunicorn da solo bastava (come quasi
 sicuramente potevi usare anche il runserver di django)


 Questo non lo capisco: in una intranet non c'è ugualmente bisogno di un
 vero web server? Nel mio caso ho parecchi uffici distanti, qualche
 centinaio di utenti e dei contenuti statici importanti (immagini di grandi
 dimensioni), quindi pensavo che lasciare tutto in mano a Gunicorn o al
 server di sviluppo di Django non fosse fattibile.

 Grazie,
 Marco



Hmm scusami, nella mia mente una intranet la associo sempre (erroneamente)
a una roba piccola (una dozzina di utenti, spesso nella stessa rete).
Evidentemente nel tuo caso non e' cosi'.

-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Marco Santamaria
 Beh, probabilmente nessuno, come non hai probabilmente nessun vantaggio a
 usare nginx in una intranet, gunicorn da solo bastava (come quasi
 sicuramente potevi usare anche il runserver di django)


Questo non lo capisco: in una intranet non c'è ugualmente bisogno di un
vero web server? Nel mio caso ho parecchi uffici distanti, qualche
centinaio di utenti e dei contenuti statici importanti (immagini di grandi
dimensioni), quindi pensavo che lasciare tutto in mano a Gunicorn o al
server di sviluppo di Django non fosse fattibile.

Grazie,
Marco
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 2015-03-19 17:43 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 Quindi /home/jester/public_html/globeX/globeX/wsgi.py esiste ?

 cat /home/jester/public_html/globeX/globeX/wsgi.py

 ti restituisce il suo contenuto ?

 occhio che django si aspetta la chdir nella dir del progetto, quindi e'
 piu' probabile che sia /home/jester/public_html/globeX e non
 /home/jester/public_html/globeX/globeX (a meno che non hai qualche
 impostazione strana)


 Risolto, dovevo indicare --ini e non --file.
 Ora mi chiedo, come lo automatizzo? Se io chiudo la console adios uwsgi.
 Ecco perche' pensavo servisse nginx o qualcosa di simile.


http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html#automatically-starting-uwsgi-on-boot


Visto che sei su ubuntu:

http://uwsgi-docs.readthedocs.org/en/latest/Upstart.html

-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Manlio Perillo
2015-03-19 17:28 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 [...]

  Non credo sia possibile supportare fork.
  fork da problemi ovunque, anche su Python...
 
 
 

 C'e' poco da fare, per supportare fork() devi prenderla in considerazione
 dall'inizio in fase di progettazione (e ti costringe a scelte solo in
 funzione di lei)


Ossia buttare fuori i threads? :)

Perchè il problema di fondo è proprio quello che fork e thread non vanno
d'accordo.


Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 On 19 March 2015 at 17:46, Carlos Catucci carlos.catu...@gmail.com
 wrote:

 Devo fare un file uwsgi.py che poi punti al file wsgi.py ? Provo intanto


 Niente. Ho creato un file uwsgy.py

 [uwsgi]
 chdir = /home/jester/public_html/globeX/globeX
 wsgi-file = /home/jester/public_html/globeX/globeX/wsgi.py

 ma mi dice sempre che wsgi.py non riesce a caricarlo


Quindi /home/jester/public_html/globeX/globeX/wsgi.py esiste ?

cat /home/jester/public_html/globeX/globeX/wsgi.py

ti restituisce il suo contenuto ?

occhio che django si aspetta la chdir nella dir del progetto, quindi e'
piu' probabile che sia /home/jester/public_html/globeX e non
/home/jester/public_html/globeX/globeX (a meno che non hai qualche
impostazione strana)

-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Carlos Catucci
2015-03-19 17:43 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 Quindi /home/jester/public_html/globeX/globeX/wsgi.py esiste ?

 cat /home/jester/public_html/globeX/globeX/wsgi.py

 ti restituisce il suo contenuto ?

 occhio che django si aspetta la chdir nella dir del progetto, quindi e'
 piu' probabile che sia /home/jester/public_html/globeX e non
 /home/jester/public_html/globeX/globeX (a meno che non hai qualche
 impostazione strana)


Risolto, dovevo indicare --ini e non --file.
Ora mi chiedo, come lo automatizzo? Se io chiudo la console adios uwsgi.
Ecco perche' pensavo servisse nginx o qualcosa di simile.

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 2015-03-19 17:28 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 [...]

  Non credo sia possibile supportare fork.
  fork da problemi ovunque, anche su Python...
 
 
 

 C'e' poco da fare, per supportare fork() devi prenderla in
 considerazione
 dall'inizio in fase di progettazione (e ti costringe a scelte solo in
 funzione di lei)


 Ossia buttare fuori i threads? :)

 Perchè il problema di fondo è proprio quello che fork e thread non vanno
 d'accordo.





Questa e' la loro risposta ufficiale e vabbe'.

Ma ti assicuro che di approcci ce ne erano eccome.

Ad esempio usare pthread_atfork per rigenerare tutti i thread necessari al
runtime (lo scavenger e amici). Oppure semplicemente fare un wrapper per
fork() che quando la chiami rigenera tutto il runtime (quello che ad
esempio fa' uwsgi con gccgo, che pero' e' tutta un'altra bestia)

https://github.com/unbit/uwsgi/blob/master/plugins/gccgo/gccgo_plugin.c#L212

Di sicuro roba complicata e che rendeva una parte gia' complessa del
codice ancora piu' complessa, ma secondo me ne valeva la pena.

Vabbe' oh, alla fine e' una fissa mia, se ai gopher sta bene cosi' mi
adatto :)


-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Giovanni Porcari

 Il giorno 19/mar/2015, alle ore 12:05, Roberto De Ioris robe...@unbit.it ha 
 scritto:
 
 La documentazione e' tantissima ma scritta spessissimo senza un minimo di
 attenzione per gli utenti alle prime armi, questo e' un problema da sempre
 (e giuro mi piacerebbe tanto migliorare questa cosa, ma le risorse
 scarseggiano... alla maggior parte degli essere umani fa schifo scrivere
 documentazione...)

E comunque la tua è molto molto buona. Poi la cosa difficilissima
è fare sì che sia sempre attuale e quindi la manutenzione alla
documentazione è la vera croce. Lo dice il più esperto della
lista in documentazione mancante :D

E grazie comunque per uwsgi che è davvero eccellente non solo
per le sue funzionalità base ma anche per tutta l'insieme di
che gli hai costruito attorno...

G
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione enrico franchi
2015-03-19 17:10 GMT+00:00 Roberto De Ioris robe...@unbit.it:

 Questa e' la loro risposta ufficiale e vabbe'.

 Ma ti assicuro che di approcci ce ne erano eccome.


Certo che ce ne sono. Ma non c'e' nulla di banale.


 Ad esempio usare pthread_atfork per rigenerare tutti i thread necessari al
 runtime (lo scavenger e amici).


pthread_atfork ricade nella classe di soluzioni ad un problema che sono
esse stesse un problema.
Quando si e' fortunati, almeno il problema originale e' risolto. :)

Poi si, in questo caso sembra abbastanza controllato e si dovrebbe avere la
garanzia che nessun altra libreria sta cazzeggiando con pthread_atfork,
quindi si dovrebbe riuscire a farlo andare.

O poi va detto che pthread_atfork da manuale e' quasi completamente
inutilizzabile se qualcuno ha creato un mutex... fortunatamente le
implementazioni sono in genere piu' ragionevoli.


 Oppure semplicemente fare un wrapper per
 fork() che quando la chiami rigenera tutto il runtime (quello che ad
 esempio fa' uwsgi con gccgo, che pero' e' tutta un'altra bestia)


 https://github.com/unbit/uwsgi/blob/master/plugins/gccgo/gccgo_plugin.c#L212

 Di sicuro roba complicata e che rendeva una parte gia' complessa del
 codice ancora piu' complessa, ma secondo me ne valeva la pena.


Anche a me avrebbe lasciato piu' tranquillo. Sinceramente pero' non vedo
molti modi di farlo se non avendo delle (costose) funzioni di cleanup che
forzano il tutto in single-threaded mode ammazzando e pulendo quello che
c'e' da ammazzare e pulire e poi si, rigenerandolo dopo.



 Vabbe' oh, alla fine e' una fissa mia, se ai gopher sta bene cosi' mi
 adatto :)


Confesso che quando me ne sono reso conto sono rimasto perplesso.
Ora, onestamente, e' un bel po' che non deployo qualcosa che si
auto-demonizza; e dal momento che lo use case fork/exec e' ben coperto e
che semplicemente forkare per fare dei workers in Go non ha troppo senso,
gli use case maggiori per fork sono coperti. Pero' dannazione... ho sempre
avuto fork. Mi sembra di essere in Java.


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Enrico Bianchi

On 03/19/2015 05:01 PM, Roberto De Ioris wrote:

Perche' e' uno strato in piu' da mantenere
Punti di vista. Ad esempio io uso un nginx come punto di aggregazione 
per tutte le webapp che girano in ufficio. Il risultato e` quindi che 
non solo ho un unico punto di accesso a tutte le webapp dell'ufficio, ma 
anche che quelle che per qualche motivo hanno un logging tremendo sono 
comunque tracciate


Enrico
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Manlio Perillo
2015-03-19 17:01 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 [...]

 Comunque credo che tutti gli
 application server piu' utilizzati possano fare il dropping dei privilegi
 dopo aver fatto il bind sulla 80


Non proprio tutti:
https://github.com/golang/go/issues/1435


Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Carlos Catucci
2015-03-19 16:46 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 Accertati che DEBUG sia a True nel settings, altrimenti non hai speranze
 (django fara' i ltrapping di ogni eccezione).

 I log ce li hai nello stdout (dovresti vedere una linea per ogni richiesta)


La sola cosa che mi dice

--- no python application found, check your startup logs for errors ---
[pid: 24482|app: -1|req: -1/9] 192.168.1.82 () {36 vars in 611 bytes} [Thu
Mar 19 17:19:15 2015] GET /routers/access/ = generated 21 bytes in 0 msecs
(HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)


Il che mi preoccupa alquanto :)

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 2015-03-19 17:01 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 [...]

 Comunque credo che tutti gli
 application server piu' utilizzati possano fare il dropping dei
 privilegi
 dopo aver fatto il bind sulla 80


 Non proprio tutti:
 https://github.com/golang/go/issues/1435





vabbe' dai, il runtime di go e' talmente atipico che questi problemi gli
si perdonano :) (e te lo dice uno che qualche anno fa si e' pesantemente
incazzato per via del fatto che non vogliono supportare fork() come dio
comanda)


-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 2015-03-19 16:46 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 Accertati che DEBUG sia a True nel settings, altrimenti non hai speranze
 (django fara' i ltrapping di ogni eccezione).

 I log ce li hai nello stdout (dovresti vedere una linea per ogni
 richiesta)


 La sola cosa che mi dice

 --- no python application found, check your startup logs for errors ---
 [pid: 24482|app: -1|req: -1/9] 192.168.1.82 () {36 vars in 611 bytes} [Thu
 Mar 19 17:19:15 2015] GET /routers/access/ = generated 21 bytes in 0
 msecs
 (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)


 Il che mi preoccupa alquanto :)




Sali piu' su', all'inizio uWSGI sputa fuori una marea di informazioni. A
un certo punto ti dice anche che non e' riuscito a caricare qualcosa
(magari qualche path e' sbagliato, la virtualenv e' rotta ecc. ecc.)

-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Carlos Catucci
Ho seguito alla lettera ma quando lancio l'applicazione ottengo solo un

Internal Server Error

senza alcuna spiegazione.
Dove trovo i log file di uWSGI? Ho installato con pip in un virtualenv

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 Ho seguito alla lettera ma quando lancio l'applicazione ottengo solo un

 Internal Server Error

 senza alcuna spiegazione.
 Dove trovo i log file di uWSGI? Ho installato con pip in un virtualenv

 Carlos
 --



Accertati che DEBUG sia a True nel settings, altrimenti non hai speranze
(django fara' i ltrapping di ogni eccezione).

I log ce li hai nello stdout (dovresti vedere una linea per ogni richiesta)


-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Enrico Bianchi

On 03/19/2015 01:13 PM, Roberto De Ioris wrote:

Hmm scusami, nella mia mente una intranet la associo sempre (erroneamente)
a una roba piccola (una dozzina di utenti, spesso nella stessa rete).


Ma anche su di una Intranet non vedo il motivo per cui non mettere un 
nginx davanti a Django o al vostro framework web preferito, non 
foss'altro per il fatto di togliersi di torno tutti gli utenti che si 
lamentano di dover scrivere a mano la porta della webapp (no, far girare 
una webapp come root non lo considero nemmeno)


Enrico
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 On 03/19/2015 01:13 PM, Roberto De Ioris wrote:
 Hmm scusami, nella mia mente una intranet la associo sempre
 (erroneamente)
 a una roba piccola (una dozzina di utenti, spesso nella stessa rete).

 Ma anche su di una Intranet non vedo il motivo per cui non mettere un
 nginx davanti a Django o al vostro framework web preferito, non
 foss'altro per il fatto di togliersi di torno tutti gli utenti che si
 lamentano di dover scrivere a mano la porta della webapp (no, far girare
 una webapp come root non lo considero nemmeno)



Perche' e' uno strato in piu' da mantenere. Comunque credo che tutti gli
application server piu' utilizzati possano fare il dropping dei privilegi
dopo aver fatto il bind sulla 80 (male che vada fai una regola di iptables
e via)

uWSGI ti permette in aggiunta di usare CAP_NET_BIND di linux per tagliare
la testa al toro.


-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Manlio Perillo
2015-03-19 17:08 GMT+01:00 Roberto De Ioris robe...@unbit.it:


  2015-03-19 17:01 GMT+01:00 Roberto De Ioris robe...@unbit.it:
 
  [...]
 
  Comunque credo che tutti gli
  application server piu' utilizzati possano fare il dropping dei
  privilegi
  dopo aver fatto il bind sulla 80
 
 
  Non proprio tutti:
  https://github.com/golang/go/issues/1435
 
 
 


 vabbe' dai, il runtime di go e' talmente atipico che questi problemi gli
 si perdonano :) (e te lo dice uno che qualche anno fa si e' pesantemente
 incazzato per via del fatto che non vogliono supportare fork() come dio
 comanda)


Non credo sia possibile supportare fork.
fork da problemi ovunque, anche su Python...


Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Carlos Catucci
2015-03-19 17:10 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 Sali piu' su', all'inizio uWSGI sputa fuori una marea di informazioni. A
 un certo punto ti dice anche che non e' riuscito a caricare qualcosa
 (magari qualche path e' sbagliato, la virtualenv e' rotta ecc. ecc.)


a naso direi che possano essere le due righe che ho evidenzito con degli
asterschi alla fine

compiled with version: 4.8.2 on 19 March 2015 16:39:32
os: Linux-3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014
nodename: test001
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /home/jester/public_html/globeX/globeX
detected binary path: /home/jester/public_html/globeX/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
***
chdir() to /home/jester/public_html/globeX/
your processes number limit is 7593
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI http bound on :8000 fd 4
uwsgi socket 0 bound to TCP address 127.0.0.1:42312 (port auto-assigned) fd
3
Python version: 2.7.6 (default, Mar 22 2014, 23:03:41)  [GCC 4.8.2]
Python main interpreter initialized at 0x124f970
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 415280 bytes (405 KB) for 8 cores
*** Operational MODE: preforking+threaded ***
failed to open python file wsgi.py
***
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***

adesso vedo se cosa sia il pcre support e come fare il rebuild

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 2015-03-19 17:08 GMT+01:00 Roberto De Ioris robe...@unbit.it:


  2015-03-19 17:01 GMT+01:00 Roberto De Ioris robe...@unbit.it:
 
  [...]
 
  Comunque credo che tutti gli
  application server piu' utilizzati possano fare il dropping dei
  privilegi
  dopo aver fatto il bind sulla 80
 
 
  Non proprio tutti:
  https://github.com/golang/go/issues/1435
 
 
 


 vabbe' dai, il runtime di go e' talmente atipico che questi problemi
 gli
 si perdonano :) (e te lo dice uno che qualche anno fa si e' pesantemente
 incazzato per via del fatto che non vogliono supportare fork() come dio
 comanda)


 Non credo sia possibile supportare fork.
 fork da problemi ovunque, anche su Python...




C'e' poco da fare, per supportare fork() devi prenderla in considerazione
dall'inizio in fase di progettazione (e ti costringe a scelte solo in
funzione di lei)

Il problema e' che per un linguaggio che si vende come di sistema, non
supportarla e' un limite pesantissimo (specialmente su linux dove tutte le
funzionalita' piu' interessanti si basano proprio sulla generazione di
processi figli che condividono l'address space alla nascita).


Guarda docker, alla fine deve richiamare processi esterni per fare una
roba che richiede 2 syscall...

-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 2015-03-19 17:10 GMT+01:00 Roberto De Ioris robe...@unbit.it:

 Sali piu' su', all'inizio uWSGI sputa fuori una marea di informazioni. A
 un certo punto ti dice anche che non e' riuscito a caricare qualcosa
 (magari qualche path e' sbagliato, la virtualenv e' rotta ecc. ecc.)


 a naso direi che possano essere le due righe che ho evidenzito con degli
 asterschi alla fine

 compiled with version: 4.8.2 on 19 March 2015 16:39:32
 os: Linux-3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014
 nodename: test001
 machine: x86_64
 clock source: unix
 detected number of CPU cores: 1
 current working directory: /home/jester/public_html/globeX/globeX
 detected binary path: /home/jester/public_html/globeX/bin/uwsgi
 !!! no internal routing support, rebuild with pcre support !!!
 ***
 chdir() to /home/jester/public_html/globeX/
 your processes number limit is 7593
 your memory page size is 4096 bytes
 detected max file descriptor number: 1024
 lock engine: pthread robust mutexes
 thunder lock: disabled (you can enable it with --thunder-lock)
 uWSGI http bound on :8000 fd 4
 uwsgi socket 0 bound to TCP address 127.0.0.1:42312 (port auto-assigned)
 fd
 3
 Python version: 2.7.6 (default, Mar 22 2014, 23:03:41)  [GCC 4.8.2]
 Python main interpreter initialized at 0x124f970
 python threads support enabled
 your server socket listen backlog is limited to 100 connections
 your mercy for graceful operations on workers is 60 seconds
 mapped 415280 bytes (405 KB) for 8 cores
 *** Operational MODE: preforking+threaded ***
 failed to open python file wsgi.py
 ***
 unable to load app 0 (mountpoint='') (callable not found or import error)
 *** no app loaded. going in full dynamic mode ***
 *** uWSGI is running in multiple interpreter mode ***

 adesso vedo se cosa sia il pcre support e come fare il rebuild



No non serve, non credo userai quelle funzionalita', il tuo problema e':

failed to open python file wsgi.py


pasta il file di configurazioen che stai usando e il path in cui risiede
la tua app django.

Di regola e':

[uwsgi]
chdir = directory_progetto_django
wsgi-file = nome_progetto/wsgi.py

-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Carlos Catucci
On 19 March 2015 at 17:30, Roberto De Ioris robe...@unbit.it wrote:

 pasta il file di configurazioen che stai usando e il path in cui risiede
 la tua app django.

 Di regola e':

 [uwsgi]
 chdir = directory_progetto_django
 wsgi-file = nome_progetto/wsgi.py



WSGI config for globeX project.
It exposes the WSGI callable as a module-level variable named
``application``.
For more information on this file, see
https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/


import os
os.environ.setdefault(DJANGO_SETTINGS_MODULE, settings)

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Devo fare un file uwsgi.py che poi punti al file wsgi.py ? Provo intanto

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Roberto De Ioris

 On 19 March 2015 at 17:30, Roberto De Ioris robe...@unbit.it wrote:

 pasta il file di configurazioen che stai usando e il path in cui risiede
 la tua app django.

 Di regola e':

 [uwsgi]
 chdir = directory_progetto_django
 wsgi-file = nome_progetto/wsgi.py


 
 WSGI config for globeX project.
 It exposes the WSGI callable as a module-level variable named
 ``application``.
 For more information on this file, see
 https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/
 

 import os
 os.environ.setdefault(DJANGO_SETTINGS_MODULE, settings)

 from django.core.wsgi import get_wsgi_application
 application = get_wsgi_application()

 Devo fare un file uwsgi.py che poi punti al file wsgi.py ? Provo intanto

 Carlos
 --



No fermo, hai gia' il file wsgi.py dentro il tuo progetto (se non ce l'hai
stai usando una versione vecchissima di django, e in tal caso si' ti serve
creare un file wsgi.py NON uwsgi.py mi raccomando)
-- 
Roberto De Ioris
http://unbit.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Carlos Catucci
On 19 March 2015 at 17:46, Carlos Catucci carlos.catu...@gmail.com wrote:

 Devo fare un file uwsgi.py che poi punti al file wsgi.py ? Provo intanto


Niente. Ho creato un file uwsgy.py

[uwsgi]
chdir = /home/jester/public_html/globeX/globeX
wsgi-file = /home/jester/public_html/globeX/globeX/wsgi.py

ma mi dice sempre che wsgi.py non riesce a caricarlo

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python