文章目录
- 一、前期准备(在服务器环境下)
- 二、中期配置
-
- 2.1 gunicorn
- 2.2 supervisor
- 三、后期执行
一、前期准备(在服务器环境下)
-
准备flask项目:这是由用户自己写好的项目,并上传到服务器上,并记住其项目本地运行ip和端口:
0.0.0.0:8092
-
安装gunicorn:
pip install gunicorn
或者sudo apt-get install gunicorn
gunicorn一个被广泛使用的高性能的python WSGI UNIX HTTP服务器,Gunicorn是主流的WSGI容器之一,它易于配置,兼容性好,CPU消耗很少. -
安装supervisor:
sudo apt-get install supervisor
Supervisor是一个客户端/服务器系统,采用 Python(2.4+) 开发的,它是一个允许用户管理,基于 Unix 系统进程的 Client/Server 系统,提供了大量功能来实现对进程的管理。
二、中期配置
2.1 gunicorn
gunicorn比较简单,只要配置好一句命令:
gunicorn --workers=6 app:app -b 0.0.0.0:8888
- –workers是开启的进程数量,推荐值是CPU个数*2+1,CPU个数的获取方式
- 第一个app是模块文件的名字,如果包含文件夹可以使用.连接
- 第二个app是文件中Flask实例的名字
- -b 指定监听地址和端口
举个例子:在flask中,运行代码如下:
from flask import Flaskapp = Flask(__name__)
@app.route('/')
def hello_world():return 'Hello'
if __name__ == '__main__':app.run(host='0.0.0.0', port=8000)
则在gunicorn中配置命令为:
gunicorn --workers=2 -b0.0.0.0:8000
2.2 supervisor
安装完supervisor后,会出现一个supervisor文件夹,里面存放着主配置文件supervisord.conf和自定义配置文件目录supervisord.d(目录名可以更改为conf)
- 配置主配置文件supervisord.conf
打开supervisord.conf文件,发现有很多配置信息,不要改动里面的信息,我们使用vim supervisord.conf
编辑文件在尾部添加如下信息:
[include]
files = conf/*.conf
解释:[include]声明添加自定义配置文件,files为自定义文件路径
- 编辑自定义配置文件
首先新建自定义配置文件:进入到conf文件夹,并新建文件touch test.conf
,注意尾部为.conf
然后编辑文件:vim test.conf
,标注*号的是必须要写的
* [program:项目名称]* command = gunicorn 命令 (上面第一步中有说明)*directory = 项目绝对路径autostart = falseautorestart = falsestdout_logfile=运行日志.log (需自己新建)stderr_logfile=运行错误日志.log (需自己新建)
更多具体的命令,请移步supervisor配置详解
三、后期执行
中期配置完成后,接下来就可以使用执行命令控制服务。
在supervisor目录下,输入命令supervisorctl
,即可进入到管理服务中,会显示已存在的服务有那些及其运行状态,如图所示:
在supervisor控制台中,常见的管理控制命令有:
status 显示服务状态
start objectname 启动某服务
stop objectname 停止某服务
restart objectname 重启某服务
exit 退出supervisor管理
update 更新所有服务的配置信息
reload 重新加载所有服务并启动
shutdown 关闭所有服务
设置supervisor为开机自启,输入以下命令:
systemctl start supervisord.service
systemctl enable supervisord.service