Назад | Перейти на главную страницу

Nginx + uWsgi + Flask не может успешно настроить

Я хочу использовать nginx, uWsgi, Flask на centos 5, но всегда есть ошибки.

3 являются новейшей версией, копия файла uwgsi_params из uwsgi / nginx.

Я использую virtualenv для настройки python env.

project path: /path/to/project
virtualevn: /path/to/virenv/pyenv27

Первый шаг:

Я использую nginx и uWsgi и просматриваю страницу с ошибкой:

uWSGI Error
wsgi application not found

Конфигурация Nginx:

location / {
      uwsgi_pass 127.0.0.1:5555;
      uwsgi_param UWSGI_PYHOME /path/to/virenv/pyenv27;
      uwsgi_param UWSGI_CHDIR /path/to/project;
      uwsgi_param UWSGI_SCRIPT uwsgi;
      uwsgi_param SCRIPT_NAME "";

      include uwsgi_params;

}

Файл Flask прост:

import sys
sys.path.append(sys.path[0])

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return "Hello World!"


#app.config.from_pyfile('product.cfg')

def application(environ, start_response):
    return app(environ, start_response)

if __name__ == '__main__':
    app.run()

Команда uWsgi:

/opt/uwsgi -s 127.0.0.1:5555 -M 4 -t 30 -A 4 -p 4 -d /var/log/uwsgi.log --pidfile /var/run/uwsgi.pid --no-site --vhost --limit-as 256 

2 шаг

Я использую только uWsgi.

cmd :

/opt/uwsgi/uwsgi --xml /path/to/project/uwsgi.xml

но я получил ошибку:

ImportError: No module named site

uWsgi xml:

<uwsgi>
<chdir>/path/to/project/</chdir>
<pythonpath>/path/to/project</pythonpath>
<virtualenv>/path/to/virenv/pyenv27</virtualenv>

<wsgi-file>/path/to/project/uwsgi.py</wsgi-file>


<callable>app</callable>

<socket>:6000</socket>
<chmod-socket>666</chmod-socket>

<master />
<processes>1</processes>
<uid>uwsgi</uid>
<gid>uwsgi</gid>

<disable-logging>false</disable-logging><!-- Errors are still logged; this just disables request logging which Cherokee takes care of -->
<daemonize>/path/to/project/uwsgi.log</daemonize>
<vacuum />
<no-orphans />
</uwsgi>

Здесь что-то не так?

В версии для командной строки у вас есть:

/opt/uwsgi -s 127.0.0.1:5555 --no-site

Но в вашей версии xml вам не хватает эквивалента no-site вариант:

<uwsgi>
<no-site>true</no-site>
</uwsgi>

поэтому он пытается загрузить Python site.py файл. Вы также можете добавить пустой файл, но я бы выбрал вариант xml. И

<no-site />

также допустимый синтаксис, я обычно использую правда флаг, я.