什么是Gunicorn 及 Gunicorn的工作流程

1.什么是Gunicorn ?

   Gunicorn:Python WSGI HTTP Server.

纯 Python 编写的高性能的 WSGI Server

pre-fork 预先分配多个 worker 进程处理请求(master-slave)。master-slave方式:一个master负责去管理多个worker进程,比如那个worker超时了把它重启,worker负责处理客服端的用户请求。

多钟 worker 支持:Sync 同步worker / Async(Gevent) 基于gevent的异步worker/ Tornado / AsyncIO。一般需要支持比较高的并发的时候,可以采用基于gevent的异步worker。

什么是Gunicorn 及 Gunicorn的工作流程_第1张图片

       图解:使用Gunicorn来去部署 web的一种方式,首先客户端的请求先到Nginx这一层,Nginx负责反向代理,它就又把请求直接转发给Gunicorn。Gunicorn通过Pre-fork预先fork一堆worker进程,然后把请求转给worker进程处理请求。master进程它不会负责去处理请求,它只是负责监控和重启worker进程。

2.Gunicorn的代码示例

$ pip install gunicorn     # 安装gunicorn
# 创建文件 myapp.py, 添加内容如下
def app(environ, start_response):    # 一个web应用
    data = b'Hello, World!\n'
    start_response( "200 OK", [
        ("Content-Type", "text/plain"),
        ("Content-Length", str(len(data))
    ])
    return iter([data])

$ gunicorn -w 4 myapp:app  # 使用gunicorn指定4个worker启动 web应用

由于gunicorn部署个启动都非常容易,所以很多公司都使用 Gunicorn来作为 WSGI server。

你可能感兴趣的:(Python,web框架)