Ho un progetto Django che corre dietro Nginx e Gunicorn. Una delle applicazioni interagisce con i dispositivi di rete usando Exscript, che a sua volta utilizza Paramiko. Alcuni dispositivi non funzionano correttamente quando sono dietro a Gunicorn.Potrebbe causare un problema a gunicorn con exScript/paramiko?
Lo stesso codice esatto funzionerà bene all'interno della shell di django-admin. Funzionerà anche se lancio il server django integrato, ma ottengo comunque l'errore se ignoro nginx e mi collego direttamente a Gunicorn.
Ho provato a spostare la funzionalità in un compito di sedici, aveva lo stesso problema esatto, ma solo dietro Gunicorn.
Ho scritto uno script usando django-extensions che funziona dalla riga di comando, ma fallirà se chiamato tramite sottoprocesso. Ma solo dietro Gunicorn.
I dispositivi che stanno fallendo sembrano essere F5 LTM e sembra che il buffer sull'oggetto exscript sia in qualche modo modificato. Se dovessi indovinare, direi che Gunicorn, e ExScript/Paramiko sono in qualche modo calpestati l'un l'altro nella memoria, o forse Gunicorn sta impostando alcune variabili d'ambiente che Exscript sta rilevando.
In ogni caso, sono completamente sconcertato e apprezzerei qualsiasi guida su come risolvere questo problema.
Come hai installato paramiko? Con un pacchetto del sistema operativo? Con pip? Usi virtualenv? Sei sicuro che Gunicorn usi lo stesso paramiko della tua linea di comando? –
Parimiko è stato installato con pip, e solo nella virtualenv che gunicorn sta usando. Buona idea però. –
Se si ha ancora il problema, si prega di commentare quale [tipo di corridore] (http://gunicorn-docs.readthedocs.org/en/latest/run.html#commonly-used-arguments) stai usando in gunicorn? Quando dici che fallisce, puoi elaborare ciò che accade esattamente (un'eccezione, il processo si blocca, ecc.)? – tutuDajuju