背景:

小鱼最近搞了个工程,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

增加配置如下:

 [uwsgi]

 # uwsgi 启动时所使用的地址与端口
http-socket = 0.0.0.0: # 指向网站目录
chdir = /home/xxxxx #路径为步骤1中实际工程的目录 # python 启动程序文件
wsgi-file = manage.py # python 程序内用以启动的 application 变量名
callable = app
plugins = python
# 处理器数
processes = # 线程数
threads = #状态检测地址
stats = 127.0.0.1:

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

新增配置如下:

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

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

flask+uwsgi+supervisor部署流程的更多相关文章

  1. 使用Flask+uwsgi+Nginx部署Flask正式环境

    环境准备 在开始正式讲解之前,我们将首先进行环境准备. Step1:安装Python,pip以及nginx: sudo apt-get update sudo apt-get install pyth ...

  2. nginx+uwsgi+django部署流程

    当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产. nginx+uws ...

  3. Python基础 - Ubuntu+Nginx+uwsgi+supervisor部署Flask应用

    网上找了许多讲关于Flask应用部署的文章几乎都是一个helloworld的Demo,按照helloworld来部署都没问题,但实际项目部署时还是遇到了不少问题.在这里简单写下自己成功部署的过程,防止 ...

  4. flask部署:Ubuntu下使用nginx+uwsgi+supervisor部署flask应用

    之前一直用的Centos或者Red hat,自从使用Ubuntu后,发现Ubuntu使用起来更方便,自此爱上Ubuntu. 一.从github上下载flask应用 1.我已经成功将自己编写好的应用上传 ...

  5. Nginx+uwsgi+supervisor+Ubuntu+flask

    Nginx+uwsgi+supervisor+Ubuntu+flask Nginx+uwsgi+supervisor在Ubuntu上部署flask应用 网上找了许多讲关于Flask应用部署的文章几乎都 ...

  6. Flask+uwsgi+Nginx+Ubuntu部署

    学了一段时间flask,可是一直没有做过部署, 于是想着怎么部署呢, 想想,先吧服务给搞通吧,于是呢 就先想着去吧服务给搞起来,这里选择的是Flask+uwsgi+Nginx+Ubuntu, Pyth ...

  7. flask +gevent+nginx+Gunicorn+supervisor部署flask应用

    上篇   可以完美部署flask ,但是视乎在结合gevent+apscheduler 实现异步非阻塞后台和定时任务的时候视乎不是那么完美.请教了前辈,决定使用flask+gevent+nginx+g ...

  8. CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目

    原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...

  9. 写给新手看的Flask+uwsgi+Nginx+Ubuntu部署教程

    学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...

随机推荐

  1. Docker从容器内拷贝文件到主机上

    //以elasticsearch容器为例 //运行es docker run -d -p 9200:9200 elasticsearch:5.4 //查看已运行的容器 docker ps //进去容器 ...

  2. 022 Android .9图片的含义及制作教程

    1.图片(.9.png格式)的概念 (1)9patch图片是andriod app开发里一种特殊的图片形式,文件的扩展名为:.9.png (2)9patch图片的作用就是在图片拉伸的时候保证其不会失真 ...

  3. Session中清除对象方法比较

    转载. https://blog.csdn.net/u014401141/article/details/51816308 Session中清除对象方法比较   http://blog.csdn.ne ...

  4. Word 中批量修改所有表格格式样式

    1. 引言 我们在使用Word排版编写书籍时候,可能会带有许多表格,上百,甚至上千个表格都是有可能的.这么多的表格对于后期的样式修改是非常不利的,有什么好的方法能够一次性修改文档中所有的表格,将其统一 ...

  5. asp.net后台或前端获取TemplateField绑定的文本

    GridView中使用最多的一个是BoundField,还有一个是TemplateField 这两个各有其特点,BoundField的话比较简单,设置好DataField.HeaderText等就可以 ...

  6. OpenCvSharp 图像旋转

    /// <summary> /// 图像旋转 /// </summary> private Mat MatRotate(Mat src, float angle) { Mat ...

  7. springmvc+mybatis的增删改查入门

    先到官网了解mybatis的语法:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html 前端用了thymeleaf和vue.js,效果图和demo地址:ht ...

  8. PyCharm 占用过大 C 盘空间,system 配置文件迁移

    随着 PyCharm 的持续使用,对应 C:\Users\<username>\.PyCharm<2018.3> 下的文件大小会持续增大,且通常为 system 文件夹下的内容 ...

  9. JS权威指南读书笔记(一)

    第一章 JavaScript概述 1 JS是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格.   第二章 词法结构 1 JS程序是用Unicode字符集编写的. 2 JS是区 ...

  10. python OpenCV使用

    关于OpenCV简介  OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效——由一系列 C ...