2013-10-06 4 views
1

У меня есть тонна скриптов python, которые (для удобства в основном) генерируют вывод html, поэтому, естественно, я хотел бы использовать очень простую настройку для размещения сценариев в текущей тестовой среде. Настройка проектов в say, Django, Flask, web2py или что-то еще, для каждой глупой вещи, в которой я нуждаюсь, слишком много хлопот, я просто хочу написать .py и просматривать ее, не настраивая ничего, как в php.Простой вопрос установки nginx + uWSGI

Я боролся с этим в течение нескольких дней, потому что я не знаю точно, что это неправильно, поэтому я просто разместить свою текущую попытку с конфигурационными файлами:

Nginx:

location ~ \.py$ { 
    uwsgi_pass unix:///path/to/socket; 
    uwsgi_param SCRIPT_NAME $uri; 
    include uwsgi_params; 
} 

uWSGI

[uwsgi] 
plugins = python3 
py-auto-reload = 1 #So I dont have to reload the service every time 

test.py

def application(env, start_response): 
    start_response('200 OK', [('Content-Type','text/html')]) 
    return b"Hello World" 

У меня есть много много много вариаций в Nginx и uwsgi конфигурации, но я всегда получаю:

uWSGI Ошибка

Python приложение не найдено

И журнал всегда показывает такие вещи:

[pid: 10423|app: -1|req: -1/10] 10.0.20.101() {42 vars in 675 bytes} [Sun Oct 6 08:25:51 2013] GET /test.py => generated 48 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 63 bytes (0 switches on core 0) 
- 
Sun Oct 6 08:26:44 2013 - unable to load app 0 (mountpoint='/var/www/test.py') (callable not found or import error) 
[pid: 10423|app: -1|req: -1/12] 10.0.20.101() {44 vars in 707 bytes} [Sun Oct 6 08:26:44 2013] GET /test.py => generated 48 bytes in 0 msecs (H 
TTP/1.1 500) 2 headers in 63 bytes (0 switches on core 0) 
- 
Sun Oct 6 07:22:36 2013 - unable to load app 0 (mountpoint='/test.py') (callable not found or import error) 
[pid: 10423|app: -1|req: -1/12] 10.0.20.101() {44 vars in 707 bytes} [Sun Oct 6 08:26:44 2013] GET /test.py => generated 48 bytes in 0 msecs (H 
TTP/1.1 500) 2 headers in 63 bytes (0 switches on core 0) 

ответ

0

Это не то, как должны работать приложения WSGI. Они, как правило, работают с большим количеством приложений, к которым nginx передает запросы. Вы запрашиваете CGI-подобную настройку, поэтому вам нужно использовать модуль CGI uWSGI (http://uwsgi-docs.readthedocs.org/en/latest/CGI.html). Очевидно, что эти приложения должны быть совместимы с CGI. Я не уверен, что это то, что вы хотите, но я настоятельно рекомендую вам потратить немного времени на то, как работает приложение WSGI, поскольку это в основном то, как все работает в настоящее время (perl/PSGI, ruby ​​/ Rack ...)

Примечание: вы, вероятно, найдете (uWSGI) конфигурации людей, управляющих именно тем, что вы пытаетесь выполнить, но они далеки от нормального пути.

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