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 在虚拟环境中安装 Flask pip 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 = 127.0.0.1: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 的所有步骤。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值