美文网首页
部署 Django、Flask 项目(一)

部署 Django、Flask 项目(一)

作者: 武曌思 | 来源:发表于2018-03-09 13:19 被阅读0次

    说明

    1、使用 Git 做代码版本管理

    2、使用 Gunicorn 做 Django 的多线程服务器

    3、使用 Supervisor 做进程管理工具

    备注:也可以不使用 Supervisor 做进程管理,请参考 第二种方案 。

    一、Gunicorn

    是一个 Python WSGI UNIX 的HTTP服务器,它的作用是用来代替 Django 自带 Server,自带的 Server 只能单线程运行。Gunicorn 能并发多线程,轻量级的资源消耗,以及高性能等特点。

    pip install gunicorn

    命令说明

    gunicorn 模块名:变量名 [OPTIONS]

    1、运行项目

    Django:gunicorn 项目名.wsgi:application

    Flask:gunicorn wsgi:application

    说明--模块名:变量名

    模块名就是引导用的 python 文件名称(不包括后缀/模块名),变量名就是 Flask 或 Django 实例的名称。

    2、绑定socket

    -b ip:port

    3、以守护进程运行

    -D

    4、工作进程数

    -w 数量

    gunicorn是一个pre-fork worker模式,就是指gunicorn启动的时候,在主进程中会预先fork出指定数量的worker进程在处理请求时,gunicorn依靠操作系统来提供负载均衡,通常推荐的worker数量是:(2 x $num_cores) + 1

    二、Supervisor

    supervisor 是一个制作守护进程的工具,用户可以在 UNIX 系统中监控、管理进程。常用于管理与某个用户或项目相关的进程,帮助维护各种服务器的进程,即使有软件崩了也能帮我们自动重启。

    pip install supervisor

    1、配置文件

    类似于 Nginx 虚拟服务器一样,Supervisor 管理的每一个进程都以 /etc/supervisor/conf.d/ 目录下的一个配置文件形式存在,扩展名为 conf。配置文件如下:

    2、虚拟环境的使用

    特别感谢 @李阳良 老师

    command 使用绝对路径。例如,使用 gunicorn,使用 /path/to/pipenv/gunicorn。


    3、命令使用

    (1)启动进程

    supervisorctl start [xxxx|all]

    (2)关闭进程

    supervisorctl stop [xxxx|all]

    (3)加载新的配置文件,重启所有进程

    supervisorctl reload

    (4)只加载新的配置文件,不重启

    supervisorctl reread

    (5)根据 reread 的最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

    supervisorctl update

    注:一般(4)和(5)配合使用

    (6)查看运行状态

    supervisorctl status

    相关文章

      网友评论

          本文标题:部署 Django、Flask 项目(一)

          本文链接:https://www.haomeiwen.com/subject/hzlufftx.html