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
增加配置如下:
[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部署流程的更多相关文章
- 使用Flask+uwsgi+Nginx部署Flask正式环境
环境准备 在开始正式讲解之前,我们将首先进行环境准备. Step1:安装Python,pip以及nginx: sudo apt-get update sudo apt-get install pyth ...
- nginx+uwsgi+django部署流程
当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产. nginx+uws ...
- Python基础 - Ubuntu+Nginx+uwsgi+supervisor部署Flask应用
网上找了许多讲关于Flask应用部署的文章几乎都是一个helloworld的Demo,按照helloworld来部署都没问题,但实际项目部署时还是遇到了不少问题.在这里简单写下自己成功部署的过程,防止 ...
- flask部署:Ubuntu下使用nginx+uwsgi+supervisor部署flask应用
之前一直用的Centos或者Red hat,自从使用Ubuntu后,发现Ubuntu使用起来更方便,自此爱上Ubuntu. 一.从github上下载flask应用 1.我已经成功将自己编写好的应用上传 ...
- Nginx+uwsgi+supervisor+Ubuntu+flask
Nginx+uwsgi+supervisor+Ubuntu+flask Nginx+uwsgi+supervisor在Ubuntu上部署flask应用 网上找了许多讲关于Flask应用部署的文章几乎都 ...
- Flask+uwsgi+Nginx+Ubuntu部署
学了一段时间flask,可是一直没有做过部署, 于是想着怎么部署呢, 想想,先吧服务给搞通吧,于是呢 就先想着去吧服务给搞起来,这里选择的是Flask+uwsgi+Nginx+Ubuntu, Pyth ...
- flask +gevent+nginx+Gunicorn+supervisor部署flask应用
上篇 可以完美部署flask ,但是视乎在结合gevent+apscheduler 实现异步非阻塞后台和定时任务的时候视乎不是那么完美.请教了前辈,决定使用flask+gevent+nginx+g ...
- CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目
原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...
- 写给新手看的Flask+uwsgi+Nginx+Ubuntu部署教程
学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...
随机推荐
- sublime text3 修改快捷键为eclipse
Preferences -> Key bindings - User [ { "keys": ["shift+enter"], "command ...
- Mac上Docker的安装
安装 安装包安装 由于历史原因, 本人使用的是安装安装的方式, 这也是很多Windows用户的习惯. 下载地址: https://download.docker.com/mac/stable/Dock ...
- 双链表的基本实现与讲解(C++描述)
双链表 双链表的意义 单链表相对于顺序表,确实在某些场景下解决了一些重要的问题,例如在需要插入或者删除大量元素的时候,它并不需要像顺序表一样移动很多元素,只需要修改指针的指向就可以了,其时间复杂度为 ...
- pytorch1.0神经网络保存、提取、加载
pytorch1.0网络保存.提取.加载 import torch import torch.nn.functional as F # 包含激励函数 import matplotlib.pyplot ...
- 03 CSS听课笔记
CSS:页面美化和布局控制 1. 概念: Cascading Style Sheets 层叠样式表层叠:多个样式可以作用在同一个html的元素上,同时生效 2. 好处:(1)功能强大(2)将内容展示和 ...
- [WinForm] - "更新 DataSet 应用程序集对象失败,Visual Studio 自动重启" 之解决
背景 在 WinForm 解决方案中,更新 DataSet 应用程序集对象失败,Visual Studio 自动重启. 试一试 1. 更新 .xsd 时打开对应的 .Designer.cs.2. 如果 ...
- beego入门笔记
Beego Learn Note 示例环境在Deepin系统下. deepin 15.9.3 ├── Beego : 1.11.2 ├── GoVersion : go1.12.4 ├── GOOS ...
- Kubernetes(k8s) docker 修改 /dev/shm大小
一.问题 /dev/shm在/etc/fstab中挂载,对应tmpfs,实际使用的是内存的空间.默认情况下,/dev/shm为物理内存大小的一半. 在Kubernetes上跑docker,发现/dev ...
- linux根文件系统的挂载过程详解
一:前言 前段时间在编译kernel的时候发现rootfs挂载不上.相同的root选项设置旧版的image却可以.为了彻底解决这个问题.研究了一下rootfs的挂载过程.特总结如下,希望能给这部份知识 ...
- 怎样查看python的所有关键字
关键字是python中具有特定功能的一组词汇, 这些词汇不能用作变量名, 一般会有高亮提示, code时请小心. python的关键字其实也是python的语法核心, 掌握了所有python关键字的用 ...