Nginx + uWsgi + Flask无法设置成功

我想在centos 5上使用nginx,uWsgi,Flask,但总是有一些错误。

3应用程序都是最新版本,uwgsi_params文件从uwsgi / nginx复制。

我使用virtualenv来configurationpython env。

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

第一步:

我使用nginx和uWsgi,并浏览显示错误页面:

 uWSGI Error wsgi application not found 

Nginxconfiguration:

 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; } 

烧瓶文件很简单:

 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版本中,你缺less一个等效的no-site选项:

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

所以它试图加载Python的site.py文件。 你也可以添加一个空文件,但我会去与XML选项。 和

 <no-site /> 

也是有效的语法,我倾向于使用旗,我自己。