2012-04-20 22 views
5

Ho incontrato il problema. Ho uno script Python. Puoi chiamarlo script CGI. Funziona bene con Apache2, ma ne rimane uno solo prima che il sistema di spegnimento funzioni per sempre. Il nuovo sistema utilizza nginx. Ho configurato uwsgi come suggerito da molti durante la ricerca sulla soluzione, l'host virtuale configurato per l'esecuzione di questo script. Ho usato il primo esempio su uwsgi wiki per confermare che ho configurato correttamente nginx e può comunicare con uwsgi. Ha funzionato come un fascino.nginx uwsgi e cgi python script

Ora i miei complicazioni:

Il mio script è stato scritto qualche tempo fa e non è progettato per WSGI, né io voglio/può riscriverla.

Quindi ho installato il modulo cgi per uwsgi e ho provato ad usarlo. Tutto quello che ottengo è 502 errori. Niente di essere eseguito uwsgi.

Ecco il mio config che sto utilizzando per questa applicazione:

[uwsgi] 
plugins = cgi 
socket = 127.0.0.1:9010 
cgi = /=/usr/share/test/ 
cgi-allowed-ext = .py 
cgi-helper = .py=python 

Ecco il codice che ho in index.py (script di test):

#!/usr/bin/python 
print "Content-type: text/html\n\n" 
print "<html><body><h1>It works!</h1></body></html>" 

cerco di testare uwsgi con seguente comando:

/usr/sbin/uwsgi --http :9011 --ini /etc/uwsgi/test.ini --master 

E qui è uscita ottengo:

012.
[uWSGI] getting INI configuration from /etc/uwsgi/test.ini 
*** Starting uWSGI 1.1.2 (64bit) on [Fri Apr 20 15:26:33 2012] *** 
compiled with version: 4.4.6 20110731 (Red Hat 4.4.6-3) on 19 April 2012 15:09:37 
current working directory: /home/user 
detected binary path: /usr/sbin/uwsgi 
your memory page size is 4096 bytes 
detected max file descriptor number: 1024 
lock engine: pthread mutexes 
uWSGI http bound on :9011 fd 3 
uwsgi socket 0 bound to TCP address 127.0.0.1:9010 fd 6 
your server socket listen backlog is limited to 100 connections 
*** Operational MODE: single process *** 
initialized CGI mountpoint:/= /usr/share/test/ 
*** no app loaded. going in full dynamic mode *** 
*** uWSGI is running in multiple interpreter mode *** 
spawned uWSGI master process (pid: 6727) 
spawned uWSGI worker 1 (pid: 6728, cores: 1) 
spawned uWSGI http 1 (pid: 6729) 
-- unavailable modifier requested: 0 -- 
-- unavailable modifier requested: 0 -- 
-- unavailable modifier requested: 0 -- 
-- unavailable modifier requested: 0 -- 

Dove è il problema? Per favore aiuto.

Grazie in anticipo.

+0

Grande avete trovato la soluzione, tuttavia è meglio aggiungerla come risposta, lo rende più chiaro per le altre persone che leggono il post. Grazie! – CharlesB

+0

@CharlesB era il mio piano, ma mi ha fatto aspettare 7 ore. Come ho trovato la soluzione, ho voluto postarla subito. Lo trasferirò in un commento più tardi, oggi o domani. Grazie. – sashk

+0

Questo è un promemoria gentile in modo che non dimentichi che puoi sapere aggiungere una risposta :) – CharlesB

risposta

6

Ok. Non ho letto uwsgi WIKI abbastanza bene. Tutto quello che dovevo fare è aggiungere --http-modifier1 9 all'interruttore della riga di comando o uwsgi_modifier1 9; a nginx config.

location/{ 
    include /etc/nginx/uwsgi_params; 
    uwsgi_modifier1 9; 
    uwsgi_pass 127.0.0.1:9010; 
} 

/usr/sbin/uwsgi --http :9011 --http-modifier1 9 --ini /etc/uwsgi/test.ini --master 
Problemi correlati