在ubuntu13.10下使用gunicorn部署flask程序

其实我使用的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()  注释掉就能够了。

相关文章
相关标签/搜索