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 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...
随机推荐
- linux下查看进程的状态 /proc/[pid]/status
查看进程的状态: 1.查看进程的pid,以java为例:ps -ef | grep java 2.查看进程状态:cat /proc/[pid]/status 关键字: linux [root@loca ...
- pytorch1.0实现GAN
import torch import torch.nn as nn import numpy as np import matplotlib.pyplot as plt # 超参数设置 # Hype ...
- istio网格可视化kiali部署
前提: 已经安装了kubernetes 已经熟悉如何安装istio 熟悉kubernetes 和 istio 基本使用 注意文章红色加粗字体能上网 tip kubernetes 安装:centos7 ...
- Python-17-反射
一.什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被 ...
- 关于NumPy的常用函数random.randint
np.random.randint(low, high=None, size=None, dtype='l') 该函数作用:用于产生离散均匀分布的整数 low:生成元素的最小值 high:生成元素的值 ...
- oracle-3-Linux-11g安装-图形安装
在安装系统时就安装了图形桌面 参考博客地址:https://www.cnblogs.com/tibit/p/6134150.html 未参考,只是感觉不错:https://blog.csdn.net/ ...
- js图片向下流动
<div id=demo style=overflow:hidden;height:;width:;background:#f4f4f4;color:#ffffff><div id= ...
- LINUX CGROUP总结
简介: Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU.内存.磁盘输入输出等).这个项目最早是由Go ...
- centos6克隆虚拟机后,网络无法访问和启动
使用vmware安装centos6虚拟机时, 克隆虚拟机后无法访问网络. 原因是:产生了重复的网卡信息** 克隆后在70-persistent-net.rules文件中会多一行网卡信息,把第一行网卡信 ...
- 免root xshell连接termux
免root实现xshell连接termux termux为安卓手机上的一款模拟linux终端的应用,由于手机上打字比较麻烦,所以想到了用电脑上的xshell通过ssh连接termux,以实现电脑控制t ...