2013-09-20 2 views
0

У меня есть приложение pylons, которое я пытаюсь запустить NGINX с помощью uWSGI. Приложение делает запрос GET с помощью httplib. При испытании под пластификатор, приложение получает данные из запроса GET нормально, но после установки его за uWSGI, я получаю следующее сообщение об ошибке в моем журнале Nginx:Пилоны, uWSGI и httplib, выдающие сообщение о преждевременном закрытии соединения с восходящим потоком

2013/09/20 21:52:07 [error] 3920#0: *10 upstream prematurely closed connection while reading response header from upstream, client: ***, server: ***.com, request: "GET /getElevation?X_Value=-105.61019897460938&Y_Value=40.24959460394122 HTTP/1.1", upstream: "uwsgi://unix:///tmp/uwsgi.maps.sock:" 

И это в журнале uwsgi:

Traceback (most recent call last): 
    File "/root/.virtualenvs/maps/lib/python2.6/site-packages/Paste-1.7.5.1-py2.6.egg/paste/cascade.py", line 117, in __call__ 
    v = app(environ_copy, repl_start_response) 
    File "/root/.virtualenvs/maps/lib/python2.6/site-packages/Paste-1.7.5.1-py2.6.egg/paste/urlparser.py", line 446, in __call__ 
    filename = request.path_info_pop(environ) 
    File "/root/.virtualenvs/maps/lib/python2.6/site-packages/Paste-1.7.5.1-py2.6.egg/paste/request.py", line 309, in path_info_pop 
    environ['SCRIPT_NAME'] += '/' 
KeyError: 'SCRIPT_NAME' 
[pid: 3897|app: 0|req: 1/4] ****() {44 vars in 1228 bytes} [Fri Sep 20 21:52:07 2013] GET /getElevation?X_Value=-105.61097145080566&Y_Value=40.24500880734505 => generated 0 bytes in 1 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core 0) 
...The work of process 3897 is done. Seeya! 
worker 2 killed successfully (pid: 3897) 
Respawned uWSGI worker 2 (new pid: 3925) 

Я думал, что это может быть проблемой тайм-аут, но я установил следующее за uwsgi:

socket-timeout = 15 
http-timeout = 15 
harakiri = 60 

Я уверен, что я что-то с конфигурацией uWSGI отсутствует. Может кто-то указать мне верное направление?

ответ

0

Ваше приложение (пилоны) ожидает переменную SCRIPT_NAME:

ENVIRON [ 'SCRIPT_NAME'] + = '/'

KeyError: 'SCRIPT_NAME'

просто сказать Nginx, чтобы передать его uWSGI:

uwsgi_param SCRIPT_NAME ""; 
+0

Это работало как шарм. Большое спасибо. – dwelch

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