flask框架学习(8)-Gunicorn的使用

1.Gunicorn介绍
2.直接命令行模式运行gunicorn程序
3.通过配置文件方式去运行gunicorn程序
4.WSGI和uwsgi和uWSGI的区别

1.Gunicorn介绍
1.Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器
2.Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗
3.Gunicorn直接用命令启动,不需要编写配置文件,相对uWSGI要容易很多
4.Gunicorn只能运行在Linux环境中,不支持windows平台
5.库安装方法:pip install gunicorn
2.直接命令行模式运行gunicorn程序
# 在安装gevent模块需要输入命令:yum install python3-devel -y
# gevent模块安装:pip3 install gevent==21.12.0  -i  https://pypi.douban.com/simple
eg: 假如启动的脚本路径为: /home/003_content_quality/000_main.py

# 启动命令
nohup gunicorn -w 4 --worker-class gevent -b 0.0.0.0:5000 --chdir /home/003_content_quality 000_main:app
 > /log.txt 2>&1 &

# 参数讲解:
-w 代表启动多少个进程
--worker-class 工作模式 默认是同步的方式去处理请求,每个worker进程,一次只处理一个请求,
               如果此时又有其他请求被分配到了这个worker进程中,那只能被堵塞了,只能等待第一个请求完成;
               --worker-class gevent 使用协程的方式去处理请求
-b 表示绑定ip地址和端口号
--chird  加载程序前将目录更改为指定目录;
         如果不是在000_main.py路径下,想启动程序则需要加这个参数,--chdir /home/003_content_quality ;
         如果是在该文件的路径下,可以不加这个参数
000_main:app  前面为启动的程序名:后面一般固定都是app
3.通过配置文件方式去运行gunicorn程序
eg:假如配置文件路径 /home/003_content_quality/config.py

# config.py的内容
""" 
    # 变量名都是固定的写法
    workers = 4
    bind = "0.0.0.0:5000"
    worker_class = "gevent"
    chdir = "/home/003_content_quality"
    accesslog = "/home/log/access.log"   # 请求成功的日志路径
    errorlogfile = "/home/log/error.log"  # 请求异常的日志路径
"""
启动方式:
gunicorn -c /home/003_content_quality/config.py 000_main:app

后台方式启动:
nohup gunicorn -c /home/003_content_quality/config.py 000_main:app > /log.txt 2>&1 &

# 参数讲解:
-c 配置文件的路径


# https 配置文件
""" 
# 变量名都是固定的写法
workers = 4
bind = "0.0.0.0:443"
worker_class = "gevent"
chdir = "/home/003_content_quality"
accesslog = "/home/log/access.log"   # 请求成功的日志路径
errorlogfile = "/home/log/error.log"  # 请求异常的日志路径
certfile = "/home/003_content_quality/00_cert/beijing01.ab-1.top_bundle.pem"   # 改成对应的 xxx.pem 文件名
keyfile = "/home/003_content_quality/00_cert/beijing01.ab-1.top.key"           # 改成对应的 xxx.key 文件名
"""     
启动方式跟之前一样:
gunicorn -c /home/003_content_quality/config.py 000_main:app
4.WSGI和uwsgi和uWSGI的区别
1.WSGI是一种通信协议
    是为 Python语言 定义的 Web服务器和 Web应用程序 或 框架 之间的一种简单而通用的接口
    Web服务器指:uWSGI,Gunicorn,Nginx
    web框架指:Django,Flask,Tornado

2.uwsgi是一种传输协议
    是uWSGI的一种内部协议

3.uWSGI是Web服务器


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:flask框架学习(8)-Gunicorn的使用

本文作者:伟生

发布时间:2022-10-07, 11:10:00

最后更新:2023-03-19, 16:20:02

原始链接:http://yoursite.com/2022/10/07/flask_08_gunicorn/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏