美文网首页
宝塔部署ubuntu+nginx+flask环境

宝塔部署ubuntu+nginx+flask环境

作者: itswcg | 来源:发表于2018-03-22 13:19 被阅读0次

    准备

    1. 搭建好宝塔的vps,我用的是vultr
    2. flask应用在本地运行成功

    在宝塔界面添加网站

    1. 设置好域名,数据库,php版本不管,或者在软件管理中卸载php
    2. 创建的web文件在/www/wwwroot/目录下
    3. 在本地的flask应用文件打包上传到刚刚创建的web文件中,解压

    创建Python环境

    $ sudo apt install python3-venv
    $ python3 -m venv venv
    # 如果venv/bin/下没有activate,就表示没有成功,解决如下
    $ export LC_ALL="en_US.UTF-8"
    $ export LC_CTYPE="en_US.UTF-8"
    $ sudo dpkg-reconfigure locales
    # 进入虚拟环境
    $ source venv/bin/activate
    # 安装uWSGI和requirements
    $ pip install uwsgi
    $ pip install -r requirements.txt
    # 退出虚拟环境
    $ deactivate 
    

    配置uwsgi

    在应用根目录创建config.ini文件,内容如下

    [uwsgi]
    # uwsgi 启动时所使用的地址与端口
    socket = 127.0.0.1:8386
    # 指向网站目录
    chdir = /www/wwwroot/www.itswcg.site
    # python 启动程序文件
    wsgi-file = main.py
    # python 程序内用以启动的 application 变量名
    callable = app 
    # 处理器数
    processes = 4
    # 线程数
    threads = 2
    #状态检测地址
    stats = 127.0.0.1:9191
    

    配置nginx

    在宝塔面板中,管理网站,设置,配置文件修改如下,
    或者在/www/server/panel/vhost/nginx/<name>.conf下修改

    server {
      listen  80; 如有多个web应用,都是80端口监听
      server_name resume.itswcg.com; #地址
      location / {
        include      uwsgi_params;
        uwsgi_pass   127.0.0.1:8386;  # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
        uwsgi_param UWSGI_PYHOME /www/wwwroot/www.itswcg.site/venv; # 指向虚拟环境目录
        uwsgi_param UWSGI_CHDIR  /www/wwwroot/www.itswcg.site; # 指向网站根目录
        uwsgi_param UWSGI_SCRIPT main:app; # 指定启动程序
      }
    }
    

    重启
    $ sudo service nginx restart
    这时候运行如下,不出错,输入网址就成功了
    $ uwsgi config.ini

    配置supervisor

    supervisor能同时启动多个应用,能自动重启应用,保证可用性。
    安装
    $ sudo apt-get install supervisor

    在/etc/supervisor/conf.d下添加<name>.conf文件(resume.conf),内容如下

    [program:resume] #resume是<name>
    ##注意项目目录和uwsgi的配置文件地址
    command=/www/wwwroot/www.itswcg.site/venv/bin/uwsgi /www/wwwroot/www.itswcg.site/config.ini
    directory=/www/wwwroot/www.itswcg.site
    autostart=true
    autorestart=true
    user = root
    ##log文件的位置
    stdout_logfile=/www/wwwroot/www.itswcg.site/logs/uwsgi_supervisor.log
    

    启动
    supervisord -c /etc/supervisor/supervisord.conf
    客户端管理
    $ supervisorctl

    这样你就不用每次重启时都运行$ uwsgi config.ini,supervisor帮你自动重启
    还有别忘了在宝塔面板安全中,放行端口

    参考

    https://www.cnblogs.com/Ray-liang/p/4173923.html

    相关文章

      网友评论

          本文标题:宝塔部署ubuntu+nginx+flask环境

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