Я хочу использовать 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 />
также допустимый синтаксис, я обычно использую правда флаг, я.