zoukankan      html  css  js  c++  java
  • flask+uwsgi+supervisor部署流程

     背景:

    小鱼最近搞了个工程,python用的2.7(用3也可以),后端使用的是flask,服务器用的linux,使用 flask+uwsgi+supervisor部署 ,查阅相关博客、调试、实操,已经搞起来了

    supervisor介绍如下:

    supervisor:进程管理工具,可以很方便的管理你的工程 启动、重启、停止等操作,不用再去自己写脚本控制;想更深入了解可以搜下相关supervisor资料介绍

    安装部署流程如下

    1.将工程打包到服务器上

    上传的方法很多,如xftp、filezilla 工具、或ftp命令等;

    2.新建虚拟环境

    此步可以忽略,根据自己实际情况来

    使用virtualenv 的好处就是可以让你的项目单独使用一个环境,不受系统环境和其他项目的影响

    命令(如果没有,安装一下pip install virtualenv ):

    virtualenv venv

    或:

    python-m venv venvDir

    执行后会生成venv目录,使用 source venv/bin/activate 进去虚拟环境,如图:

    退出直接使用 deactivate  即可

    你的工程需要安装包的话自行 pip安装

    3.安装 uwsgi

    pip  install uwsgi

    安装完成后,会成生 uwsgi 文件,如图:

    4.配置 uconfig.ini文件

    新建 uconfig.inx文件,命令行 vi uconfig.ini

    增加配置如下:

     1 [uwsgi]
     2 
     3 # uwsgi 启动时所使用的地址与端口
     4 http-socket = 0.0.0.0:5000 
     5 
     6 # 指向网站目录
     7 chdir = /home/xxxxx  #路径为步骤1中实际工程的目录
     8 
     9 # python 启动程序文件
    10 wsgi-file = manage.py
    11 
    12 # python 程序内用以启动的 application 变量名
    13 callable = app
    14 plugins = python
    15 # 处理器数
    16 processes = 4
    17 
    18 # 线程数
    19 threads = 2
    20 
    21 #状态检测地址
    22 stats = 127.0.0.1:9191

     5.安装 supervisor

    pip install supervisor

    安装完成后会生成 echo_supervisord_conf、supervisorctl、supervisord 文件,如图

     

    6. 生成配置文件  supervisord.conf

    1)supervisord.conf 文件名自己取,生成到哪个目录下面自己选择,命令:

    echo_supervisord_config > supervisord.conf

    2)修改supervisord.conf配置

    vi supervisord.conf

    输入二个大写的G,到文件最后面,配置如下:

    [include]      # ‘;’注释去掉
    ;files = relative/directory/*.ini
    files = /xxx/supervisor/conf.d/*.conf # 路径自己配置

     如图:

    其他文件修改:参考

    https://www.cnblogs.com/whycai/p/11611007.html

    3)修改后保存,命令 wq

    7.新增配置文件 supervisor/conf.d/uwsgi.conf

    命名:

    mkdir -p supervisor/conf.d
    vi supervisor/conf.d/uwsgi.conf

    新增配置如下:

     1 ; ================================
     2 ; uwsgi supervisor
     3 ; ================================
     4 
     5 [program:uwsgi]
     6 command=/xxxx/uwsgi --ini /xxx/uconfig.ini  # 前面路径为步骤3中uwsgi的路径,后面路径为步骤4中uconfig.ini的路径
     7 directory=/xxxxx/  # 路径为步骤1中自己工程的目录
     8 user=root
     9 stdout_logfile=/xxxxx/uwsgi_out.log  # 自己选择路径配置
    10 stderr_logfile=/xxxx/uwsgi_err.log  # 自己选择路径配置
    11 autostart=true
    12 autorestart=true
    13 startsecs=10
    14 priority=997

    8.以上都完成后,就可以运行你的工程了

    1)命令:

    killall supervisord

    supervisord -c supervisord.conf

    2)查看是否启动,

    ps -ef|grep supervisord

    ps -ef|grep uwsgi

    如果没启动,查看配置是否配置有误,具体问题具体分析

    3)使用supervisorctl管理你的工程 

    命令:

    supervisorctl

    help

    使用 stop、start等,可以很方便的管理你的工程

    好了,以上就是小鱼的部署步骤,可以愉快的玩耍了

    一些报错结果:

    1. Unlinking stale socket xxxxxx/supervisor.sock

    解决:unlink supervisor.sock

  • 相关阅读:
    L7-5 搞笑的表情包
    L7-6 神奇的验证码
    Fabric中的ACLs相关
    first-network
    关于MSP
    关于数字证书
    Linux命令学习笔记
    shell学习笔记
    区块链
    log的不同级别
  • 原文地址:https://www.cnblogs.com/whycai/p/11405202.html
Copyright © 2011-2022 走看看