美文网首页
腾讯云+flask+uwsgi+nginx部署入门

腾讯云+flask+uwsgi+nginx部署入门

作者: 钉某人 | 来源:发表于2020-04-08 11:02 被阅读0次

    此篇是在腾讯云上部署flask项目的入门文章(nginx后面有时间添加)。
    腾讯云配置:

    • 操作系统:Ubuntu Server 18.04.1 LTS 64位
    • 系统盘大小:50G
    • 1核 2GB 1Mbps

    1.Ubuntu创建新用户

    • ①创建新用户
    sudo useradd -r -m -s /bin/bash dingmouren
    -r:建立系统账号
    -m:自动建立用户登入目录
    -s:指定用户登录后使用的shell
    
    • ②设置新用户的密码
    sudo passwd dingmouren
    
    image.png
    • ③修改用户权限
      这里采用修改/etc/sudoers文件的方法分配用户权限,文件只有r权限,我们这里改动之前需要增加w权限,修改后,再去掉w权限
    sudo chmod +w /etc/sudoers
    sudo vim /etc/sudoers
    # 添加下图的配置语句
    sudo chmod -w /etc/sudoers
    
    image.png

    到这里新用户创建成功


    image.png

    切换到新用户命令

    su - dingmouren
    
    image.png

    附:删除用户
    ①.执行命令

    sudo userdel dingmouren
    

    ②.删除用户目录

    sudo rm -rf /home/dingmouren
    

    ③.删除用户权限的配置:就是删除掉 /etc/sudoers中关于dingmouren的语句,否则不能创建同名用户

    2.Ubuntu上配置python开发环境以及创建flask测试项目

    ①更新软件列表

    sudo apt update
    
    image.png

    ②安装相关软件包

    sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools
    
    

    ③安装python虚拟环境以及使用

    1.安装virtualenv
    sudo apt install virtualenv
    
    2.创建项目目录
    mkdir flaskweb
    cd flaskweb
    3.创建独立运行的虚拟环境并命名
    virtualenv --python=python3 venv
    
    4.进入虚拟环境
    source venv/bin/activate
    
    5.退出虚拟环境命令
    deactivate
    
    image.png

    ④安装wheel uwsgi flask

    pip3 install wheel
    pip3 install flask
    pip3 install uwsgi
    
    image.png

    ⑤创建flask项目程序

    touch api.py
    sudo vim api.py
    
    image.png

    ⑥放开5000端口


    image.png image.png

    ⑦启动flask程序测试,使用flask自带的服务器

    img.png

    3.使用uwsgi启动flask项目

    • ①创建uwsgi.ini文件,并配置如下
    [uwsgi]
    master = true
    http=:5000
    chdir = /home/dingmouren/flaskweb
    wsgi-file=/home/dingmouren/flaskweb/api.py
    callable=app
    processes=4
    threads=2
    buffer-size = 65536
    vacuum=true
    pidfile =/home/dingmouren/flaskweb/uwsgi.pid
    
    启动uwsgi
    uwsgi uwsgi.ini
    
    停止uwsgi
    pkill -f -9 uwsgi
    
    
    • ②创建启动脚本
      创建启动脚本可以让Ubuntu系统自动启动uwsgi服务器来启动flask应用。
      编辑启动脚本
    sudo nano /etc/systemd/system/flaskweb.service
    
    image.png
    [Unit]  
    Description=uWSGI instance to serve flaskweb
    After=network.target
    
    [Service]
    User=dingmouren
    Group=www-data
    WorkingDirectory=/home/dingmouren/flaskweb
    Environment="PATH=/home/dingmouren/flaskweb/venv/bin"
    ExecStart=/home/dingmouren/flaskweb/venv/bin/uwsgi --ini uwsgi.ini
    
    [Install]
    WantedBy=multi-user.target
    
    # 属性解释
    [Unit]部分用于指定元数据和依赖项
    Description是对服务的描述
    After=network.target指启动服务的条件为达到网络目标
    [Service]部分指定我们要在其中运行进程的用户和组
    User=dingmouren表示设置用户组,ubuntu是腾讯云Ubuntu系统默认的用户,如果你的用户名为其他,需要改为你自己的用户名
    Group=www-data是将组所有权授予该www-data组,以便Nginx可以快捷地与uWSGI进程进行通信
    WorkingDirectory是flask程序所在的路径
    Environment是虚拟环境bin文件夹的地址
    ExecStart设置后可以快捷地调用uWSGI可执行文件myproject.ini并将其传递给我们的配置文件
    WantedBy=multi-user.target表示我们设置该服务在常规多用户系统启动并运行时启动
    

    复制粘贴后,按control+o,进入下一步,然后按回车进行保存,最后按control+x回到命令行界面。
    完成以上执行启动服务命令

    sudo systemctl start flaskweb
    sudo systemctl enable flaskweb
    

    查看服务状态命令

    sudo systemctl status flaskweb
    
    image.png

    执行完,按control+c,回到正常命令界面,退出ssh客户端,访问地址仍然可以是访问的哦,
    如果修改了service中的配置,需要执行重新加载命令:sudo systemctl daemon-reload,再启动服务:sudo systemctl start flaskweb,可以再查看下服务状态:sudo systemctl status flaskweb

    image.png

    附加:

    1.查看uwsgi相关进程

    ps aux|grep uwsgi
    
    image.png

    2.停止服务命令

    sudo systemctl stop flaskweb
    

    相关文章

      网友评论

          本文标题:腾讯云+flask+uwsgi+nginx部署入门

          本文链接:https://www.haomeiwen.com/subject/fkvzphtx.html