2012-04-20 4 views
5

Я столкнулся с проблемой. У меня есть скрипт python. Вы можете назвать его скриптом CGI. Он отлично работает под Apache2, но остается только один, оставшийся до того, как я выключу систему, которая работает навсегда. Новая система использует nginx. Я настроил uwsgi, как это было предложено многими во время поиска по решению, настроенного виртуального хоста для запуска этого скрипта. Я использовал первый пример на uwsgi wiki, чтобы подтвердить, что у меня правильно настроен nginx, и он может связываться с uwsgi. Работали как обаяние.nginx uwsgi и скрипт cgi python

Теперь мои осложнения:

Мой сценарий был написан некоторое время назад и не предназначен для WSGI, ни я не хочу/могу переписать его.

Итак, я установил модуль cgi для uwsgi и попытался использовать его. Все, что я получаю, это 502 ошибки. Ничто не выполняется uwsgi.

Вот мой конфиг я использую для этого приложения:

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

Вот код, который я имею в index.py (тестовый скрипт):

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

Я пытаюсь проверить uwsgi с следующая команда:

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

А вот выход я получаю:

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

Где проблема? Пожалуйста помоги.

Заранее спасибо.

+0

Отлично, что вы нашли решение, но лучше добавить его в качестве ответа, что делает его более понятным для других людей, читающих сообщение. Благодаря! – CharlesB

+0

@CharlesB это был мой план, но он заставил меня ждать 7 часов. Когда я нашел решение, я захотел опубликовать его сразу. Я переведу его в комментарий позже сегодня или завтра. Благодарю. – sashk

+0

Это напоминание, чтобы вы не забывали, что можете узнать ответ addd :) – CharlesB

ответ

6

Ok. Я недостаточно читал uwsgi WIKI. Все, что мне нужно было сделать, это добавить --http-modifier1 9 в командной строке или uwsgi_modifier1 9; в конфигурацию 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 

 Смежные вопросы

  • Нет связанных вопросов^_^