Ubuntu 下 WSGI + Nginx + Supervisor 部署 Flask

前端之家收集整理的这篇文章主要介绍了Ubuntu 下 WSGI + Nginx + Supervisor 部署 Flask前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、安装 Python 环境

由于 Ubuntu 默认安装了 Python 2.7,所以第一步先开始安装 Python 的pip 工具。

PIP

apt-get isntall pip

Virtualenv

Virtualenv可以创建虚拟环境。虚拟环境是 Python 解释器的一个私有副本,在这个环境中安装的私有包,不会影响系统中安装的全局Python解释器。

pip install virtualenv

我的项目目录为/root/Flask,那么可以在Flask文件夹内新建一个虚拟环境,并命名为venv

cd /root/Flask
virtualenv venv

接下来开启虚拟环境source venv/bin/activate

二、安装 Flask

使用pip在虚拟环境中安装 Flaskpip install flask然后在/root/Flask文件夹中新建一个标注 Flask 运行文件test.py作为例子:

from flask import Flask

app = Flask(__name__)


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

if __name__ == "__main__":
    app.run()

三、安装 uWSGI

直接通过pip安装 uWSGI会出错,正确做法为:apt-get install build-essential python-dev pip install uwsgi

四、配置 uWSGI

为了配置 uWSGI,直接在项目目录(/root/Flask)下新建一个config.ini文件作为配置文件

[uwsgi]

# uwsgi 启动时所使用的地址与端口
socket = 127.0.0.1:8001 

# 指向网站目录
chdir = /root/Flask

# python 启动程序文件
wsgi-file = test.py 

# python 程序内用以启动的 application 变量名
callable = app 

# 处理器数
processes = 4

# 线程数
threads = 2

#状态检测地址
stats = 9191

由于我们将使用 supervisor 来管理引导 uWSIGI 的启动,所以这里不需要通过命令(uwsgi config.ini)来运行。

五、安装 Supervisor

安装 Supervisor:

apt-get install supervisor

下面对其进行配置:

只需要新建一个.conf文件/etc/supervisor/conf.d文件夹下即可,在这个例子中,我们新建一个test_supervisor.conf

[program:test]
# 启动命令入口
command=/root/Flask/venv/bin/uwsgi /root/Flask/config.ini

# 命令程序所在目录
directory=/root/Flask
#运行命令的用户名
user=root

autostart=true
autorestart=true
#日志地址
stdout_logfile=/root/Flask/uwsgi_supervisor.log

启动服务:service supervisor start

终止服务:service supervisor stop

六、安装 Nginx

Nginx 是一个反向代理软件。

apt-get install Nginx

配置 Nginx

/etc/Nginx/sites-available/default文件删除,替换成新的default文件即可。

server {
      listen  80;
      server_name XXX.XXX.XXX; #公网地址

      location / {
        include      uwsgi_params;
        uwsgi_pass   127.0.0.1:8001;  # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
        uwsgi_param UWSGI_PYHOME /root/Flask/venv; # 指向虚拟环境目录
        uwsgi_param UWSGI_CHDIR  /root/Flask; # 指向网站根目录
        uwsgi_param UWSGI_SCRIPT test:app; # 指定启动程序
      }
    }

然后重启 Nginx

service Nginx restart

到这一步,就完成了部署 Flask 的所有步骤。

猜你在找的Ubuntu相关文章