2012-04-20 22 views
5

Me he encontrado con problemas. Tengo un script de Python. Puedes llamarlo script CGI. Funciona bien bajo Apache2, pero solo queda uno antes de que el sistema de apagado funcione para siempre. El nuevo sistema usa nginx. Configuré uwsgi como lo sugirieron muchos mientras buscaba en la solución, el host virtual configurado para ejecutar este script. He utilizado el primer ejemplo en uwsgi wiki para confirmar que he configurado correctamente nginx y que se puede comunicar con uwsgi. Funcionó como el encanto.script de nginx uwsgi y cgi python

Ahora mis complicaciones:

Mi guión fue escrito hace algún tiempo y no está diseñado para WSGI, ni quiero/se puede volver a escribir.

Así que he instalado el módulo cgi para uwsgi y he intentado usarlo. Todo lo que obtengo es 502 errores. Nada se está ejecutando uwsgi.

Aquí está mi configuración que estoy usando para esta aplicación:

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

Aquí está el código que tengo en index.py (escritura de la prueba):

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

trato de probar con uwsgi siguiente comando:

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

Y aquí está la salida me sale:

[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 -- 

¿Dónde está el problema? Por favor ayuda.

Gracias de antemano.

+0

Genial, usted encontró la solución, sin embargo, es mejor agregarla como respuesta, lo hace más claro para otras personas que leen la publicación. ¡Gracias! – CharlesB

+0

@CharlesB fue mi plan, pero me hizo esperar 7 horas. Cuando encontré la solución, quise publicarla de inmediato. Lo moveré a un comentario más tarde hoy o mañana. Gracias. – sashk

+0

Este es un recordatorio amable para que no olvides que puedes saber agregar una respuesta :) – CharlesB

Respuesta

6

Ok. No leí uwsgi WIKI lo suficientemente bueno. Todo lo que tuve que hacer fue agregar --http-modifier1 9 al interruptor de la línea de comando o uwsgi_modifier1 9; a la configuración de nginx.

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 
Cuestiones relacionadas