美文网首页
CentOS7 部署 Flask

CentOS7 部署 Flask

作者: 龃龉前行 | 来源:发表于2020-05-11 09:59 被阅读0次
    1. 添加一个用户

    [root@localhost ~]# cat /etc/redhat-release # 查看linux版本
    CentOS Linux release 7.7.1908 (Core)

    [root@localhost ~]# adduser flask # 添加用户
    [root@localhost ~]# passwd flask # 设置密码

    [root@localhost ~]# gpasswd -a flask wheel # 将flask加入wheel组
    [root@localhost ~]# sudo -iu flask # 切换到flask用户

    2. 初始化环境

    sudo yum install epel-release # 初始化仓库
    sudo yum install gcc nginx # 安装gcc和nginx

    3. 安装anaconda

    下载地址:https://www.anaconda.com/products/individual

    wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh # 下载anaconda
    sh Anaconda3-2020.02-Linux-x86_64.sh # 安装anaconda

    按默认设置安装即可,可以简单归纳就是“yes 回车 yes”!

    4. 创建python虚拟环境

    source anaconda3/bin/activate # 激活anaconda
    pip install virtualenv # 安装virtualenv
    mkdir ~/myweb # 创建目录
    cd ~/myweb
    virtualenv myweb # 创建虚拟环境目录
    source myweb/bin/activate # 激活新建的虚拟环境

    5. 安装flask和配置uwsgi

    pip install uwsgi flask # 安装flask和uwsgi
    sudo firewall-cmd --permanent --add-port=5000/tcp # 打开防火墙端口,请根据实际打开相应端口
    sudo firewall-cmd --reload # 应用防火墙设置

    将flask项目复制到myweb目录中,先执行 python manage.py runserver 测试是否可以正常运行,之后在项目目录(myweb)下建立uwsgi配置文件(myweb.ini),并粘贴以下内容。

    vi myweb.ini

    [uwsgi]
    master=true
    
    #uwsgi启动时,所使用的地址和端口(这个是http协议的)
    http=0.0.0.0:5000
    
    #指向网站目录
    chdir=/data/www/myweb
    
    #python 启动程序文件
    wsgi-file=manage.py
    
    #python 程序内用以启动的application 变量名
    callable=app
    
    #处理器数
    processes=2
    
    #线程数
    threads=50
    
    #日志
    logto=/data/www/myweb/myweb.log
    
    #PID文件
    pidfile=/data/www/myweb/myweb.pid
    

    设置完成后回到命令行,使用以下命令启动一个uwsgi服务器

    uwsgi --ini myweb.ini

    6. 创建自启动Systemd配置

    sudo vi /etc/systemd/system/myweb.service

    输入下面内容

    [Unit]
    Description=uWSGI instance to serve Myweb
    After=network.target
    
    [Service]
    User=flask
    WorkingDirectory=/data/www/myweb
    Environment="PATH=/data/www/myweb/bin"
    ExecStart=/data/www/myweb/bin/uwsgi --ini /data/www/myweb/myweb.ini
    Restart=always
    Type=notify
    NotifyAccess=all
    StandardError=syslog
    KillSignal=SIGQUIT
    
    [Install]
    WantedBy=multi-user.target
    
    

    sudo systemctl start myweb.service # 启动服务
    sudo systemctl enable myweb.service # 开机自启动

    相关文章

      网友评论

          本文标题:CentOS7 部署 Flask

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