其实我使用的linuxmint16 ,不过他是基于ubuntu13.10的,按照从网上找到的一片博文操做,基本ok,不过仍是除了一些小问题,记录一下:python
博文地址:How to Run Flask Applications with Nginx Using Gunicornlinux
我没用virtualenvnginx
第一步:安装gunicornflask
sudo pip install gunicorn #也能够 sudo easy_install gunicorn
第二步:ubuntu
在
app
app.run()
的前面加上:spa
from werkzeug.contrib.fixers import ProxyFix app.wsgi_app = ProxyFix(app.wsgi_app)
运行它:
调试
gunicorn hello:app
这个hello就是code
app.run()
所在文件的名字,至于冒号后面的app天然就是app.run()的app了。server
其实在文档里还有这样一种运行方法,不过我没成功:
gunicorn -w 4 -b 127.0.0.1:4000 myproject:app
第三步,安装、配置nginx。
sudo apt-get install nginx sudo gedit /etc/nginx/sites-available/default
server { listen 80; server_name localhost; root /home/ranvane/develop/cdlist_flask; access_log /home/ranvane/develop/cdlist_flask/logs/access.log; error_log /home/ranvane/develop/cdlist_flask/logs/error.log; location / { proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://127.0.0.1:5000; break; } } }
修改完用
sudo nginx -t
检查一下配置文件是否正确。
/home/ranvane/develop/cdlist_flask是有app.run()文件的目录,proxy_pass http://127.0.0.1:5000;是端口转发,这里我就遇到了问题,其实gunicorn hello:app是转发到了8000端口,可是nginx就是不能解析,我看这控制台显示的仍是调试时显示的“* Running on http://127.0.0.1:5000/”,因而就试着把端口改成5000,就成了。
这其实就是我遇到的问题:
gunicorn运行时绑定的端口nginx不会转发。。。。。。。。。
唉,先用着吧。。。等会再查查。
嘿嘿,找到问题了,只要将 app.run() 注释掉就能够了。