2013-07-17 1 views
2

Я пытаюсь развернуть приложение Flask на Linode VPS под управлением Ubuntu 10.10. Я слежу за этим уроком (https://library.linode.com/web-servers/nginx/python-uwsgi/ubuntu-10.10-maverick#sph_configure-nginx), но я все равно получаю ошибку 502 Bad Gateway.502 Ошибка Bad Gateway Nginx и uWSGI при развертывании приложения Flask

Вот это/и т.д./по умолчанию/uwsgi:

PYTHONPATH=/var/www/reframeit-im 
MODULE=wsgi 

Вот /var/www/reframeit-im/wsgi.py:

# add the application directory to the python path 
import sys 
sys.path.append("/var/www/reframeit-im") 

# run flask app 
from reframeit import app as application 

Вот Nginx конфигурационный файл для приложения , который является ссылкой на/сайты с поддержкой каталога (/ Opt/Nginx/CONF/сайты с поддержкой/reframeit-им):

server { 
    listen 80; 
    server_name www.reframeit-im.coshx.com reframeit-im.coshx.com; 
    access_log /var/www/reframeit-im/logs/access.log; 
    error_log /var/www/reframeit-im/logs/error.log; 

    location/{ 
     include uwsgi_params; 
     uwsgi_pass 127.0.0.1:9001; 
    } 
} 

Я проверил Nginx эр ror logs для приложения, и я нашел это:

2013/07/17 19:30:19 [error] 20037#0: *1 upstream prematurely closed connection while reading response header from upstream, client: 70.88.168.82, server: www.reframeit-im.coshx.com, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://127.0.0.1:9001", host: "reframeit-im.coshx.com" 

С моей настройкой что-то не так?

ответ

1

С uwsgi_pass 127.0.0.1:9001; вы объявили Nginx о своем намерении поговорить с uWSGI через TCP-сокет, но не предупредили об этом uWSGI.

Попробуйте добавить соответствующий сокет строку в файл /etc/default/uwsgi:

PYTHONPATH=/var/www/reframeit-im 
MODULE=wsgi 
socket=127.0.0.1:9001 
+0

Добавление строки 'socket', кажется, ничего не делает; Я все еще получаю ошибку 502 Bad Gateway. –

+0

все еще получает ошибку «восходящего потока преждевременного закрытого соединения»? Или что-то другое? – flaviodesousa

+0

Большое спасибо Flavio, это сработало для меня. –

0

Пожалуйста, добавьте «Протокол = uwsgi», кроме того, что предложил Флавио. Как ниже

PYTHONPATH=/var/www/reframeit-im 
MODULE=wsgi 
socket=127.0.0.1:9001 
protocol = uwsgi