美文网首页
Flask + nginx + gunicorn + super

Flask + nginx + gunicorn + super

作者: 大锤在学习 | 来源:发表于2018-12-23 23:10 被阅读0次

    原理图

    image.png

    配置虚拟环境 virtualenv

    //安装virtualenv
    sudo apt-get install python-virtualenv
    //新建虚拟环境 venv
    //venv 虚拟环境文件夹
    virtualenv -p python3 venv
    //使用虚拟环境
    source  venv/bin/activate
    

    gunicorn配置

    #安装 gunicorn
    pip3 install gunicorn
    #启动gunicorn
    gunicorn app:app_file_name -b localhost:8000 $
    

    配置supervisor

    #安装supervisor
    sudo apt-get install supervisor
    

    配置supervisor

    #在/etc/supervisor/conf.d新建配置文件supervisor.conf
    vim /etc/supervisor/conf.d/supervisor.conf
    #supervisor.conf内容
    [program:idea-worker]
    directory=/home/ubuntu/hello_world #项目地址
    command=/home/ubuntu/.env/bin/gunicorn app:app_file_name -b localhost:8000 #启动命令
    autostart=true // 在 supervisord 启动的时候也自动启动,如果设置为false 重启服务器后还需要手动执行命令进行运行
    autorestart=true // 程序异常退出后自动重启 设置为false supervisord 将不会在程序关闭后重新运行、设置
    stderr_logfile=/var/log/idea-worker.err.log // 错误日志
    stdout_logfile=/var/log/idea-worker.out.log // 所有日志
    

    注:supervisor不会自动创建文件,所以日志文件要提前建好

    supervisor reload并应用配置

    #reload
    supervisorctl reread
    #update
    supervisorctl update
    
    #管理应用
    supervisorctl
    #进入supervisor后,就可以管理任务了
    #常用命令
    start program #启动任务
    stop program #停止任务
    restart program #重新启动
    status #状态
    quit #退出
    
    #开启web界面管理
    vi /etc/supervisor/supervisord.conf
    #在配置文件中添加以下字段
    [inet_http_server]         ; inet (TCP) server disabled by default
    port=0.0.0.0:9001          ; (ip_address:port specifier, *:port for ;all iface)
    username=user              ; (default is no username (open server))
    password=123               ; (default is no password (open server))
    

    配置Nginx

    #安装Nginx
    sudo apt-get install nginx
    
    #配置Nginx
    sudo vim /etc/nginx/conf.d/virtual.conf
    #输入如下内容:
    server {
        listen       80;
        server_name  your_public_dnsname_here;
    
        location / {
            proxy_pass http://127.0.0.1:8000;
        }
    }
    #重新加载配置
    sudo nginx -t
    #重新启动服务
    sudo service nginx restart
    

    参考文档:
    python web 部署:nginx + gunicorn + supervisor + flask 部署笔记
    利用Nginx和Host把自定义域名指向本地
    Deploy flask app with nginx using gunicorn and supervisor
    supervisor在deepin安装、使用与卸载

    相关文章

      网友评论

          本文标题:Flask + nginx + gunicorn + super

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