使用virtualenv, uwsgi, nginx来布署flask

Posted wzzkaifa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用virtualenv, uwsgi, nginx来布署flask相关的知识,希望对你有一定的参考价值。

本文讲述了怎样使用virtualenv, uwsgi, nginx来布署flask的步骤。

升级软件包

运行下面命令,保证你的机器安装了最新的软件包。

sudo apt-get update
sudo apt-get upgrade

安装python和virtualenv

sudo apt-get install build-essential python-dev python-pip
sudo pip install virtualenv

创建存放站点的文件夹

比如,在/home/gzlihao/webservice文件夹下创建mysite文件夹

mkdir mysite

配置virtualenv和安装flask, uwsgi

进入 mysite 文件夹,然后创建虚拟环境 .env,激活虚拟环境。然后安装flask和uwsgi。

cd mysite
virtualenv .env
source .env/bin/activate
pip install flask
pip install uwsgi

在mysite文件夹下创建hello.py

hello.py的内容例如以下:

from flask import Flask
app = Flask(__name__)

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

if __name__ == "__main__":
    app.run(host=‘0.0.0.0‘, port=8080)

须要注意的是,app.run()仅仅是开发时測试使用,故须要放置在if __name__ == "__main__"下,这样uwsgi才不会运行app.run()方法。

而host须要设置为0.0.0.0,表示让flask监听机器的全部ip地址的8080端口。

配置uwsgi

添加配置文件uwsgi.ini,内容例如以下:

[uwsgi]
chdir=/home/gzlihao/webservice/mysite
home=/home/gzlihao/webservice/mysite/.env
module=hello
callable=app
master=true
processes=2
socket=%(chdir)/mysite.sock
chmod-socket=666
logfile-chmod=644
daemonize=%(chdir)/uwsgi.log
uid=gzlihao
gid=gzlihao






以上是关于使用virtualenv, uwsgi, nginx来布署flask的主要内容,如果未能解决你的问题,请参考以下文章

nginx+uWSGI+django+virtualenv+supervisor发布web服务器

[原创]Flask+uwsgi+virtualenv+nginx部署配置

CentOS下实现Flask + Virtualenv + uWSGI + Nginx部署

nginx+uWSGI+django+virtualenv+supervisor发布web服务器

08 nginx+uWSGI+django+virtualenv+supervisor发布web服务器

uWSGI实战之Django配置经验