服务器模式

Gunicorn 基于 pre-fork 模式,这意味着有一个主进程管理工作的子进程.主进程对客户端的工作业务有了解.所有的请求和响应都是工作子进程处理.

主进程

主进程是一个简单的循环,监听各种进程的信号并做出相应的反应.它通过监听信号(比如TTIN/TTOU/CHLD)来管理正在运行的工作进程.TTIN和TTOU告诉主进程增加或减少工作的进程数量.CHLD表明一个子进程被终止了,这时主进程就重启这个失败的进程.

同步工作进程

最基础并且是默认的工作类是同步工作模式,一个时间只处理一个请求.这个模式是最简单的因为任何错误只会影响一个请求.

异步工作

异步工作基于Greenlets,这是python对协成的一个实现.一般来说,一个应用可以在不进行任何修改的情况下使用Greenlets.

选择工作类型

默认的同步工作类型是假设你的应用是资源限制型(CPU和带宽受限),这意味着你的应用做的任何事情都不会花费太多的时间.比如,访问网络就符合这个条件.

资源限制的假设就是为什么我们需要一个缓冲代理在默认配置的Gunicorn前面.如果你对外暴露同步模式的工作进程,a DOS attack would be trivial by creating a load that trickles data to the servers.严重的,Slowloris 就是这种类型加载的一个例子.

默认的同步工作模式是在Nginx的基础上设计的,上传服务只用了HTTP/1.0.如果你想部署Gunicorn来处理未经缓冲的请求(比如,直接处理外部网络请求),你需要用异步的模式.

下面是一些需要异步工作类型的行为例子:

1. 你的应用有长时间阻塞的调用(比如:请求外部web services)

2. 直接服务于网络请求(Serving requests directly to the internet)

3. 流式的请求和相应(Streaming requests and responses)

4. 长轮询

5. web sockets

原文:http://docs.gunicorn.org/en/latest/design.html

欢迎批评指正,欢迎大家一起来完善~

Gunicorn 文档翻译的更多相关文章

  1. 我是如何进行Spring MVC文档翻译项目的环境搭建、项目管理及自动化构建工作的

    感兴趣的同学可以关注这个翻译项目 . 我的博客原文 和 我的Github 前段时间翻译的Spring MVC官方文档完成了第一稿,相关的文章和仓库可以点击以下链接.这篇文章,主要是总结一下这个翻译项目 ...

  2. Hibernate 3.3.2 文档翻译 Day01

    Hibernate 3.3.2 文档翻译 翻译人:微冷的雨 第一次书写:2015年11月29日 本人呕心沥血之作,请细心阅读领悟! Day01-1.1 项目描述 微冷的雨翻译:例如,我们将要建立一个可 ...

  3. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)中一些知识点

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Flume官方文档翻译--Flume 1.7.0 User Guide (unr ...

  4. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw ...

  5. python Gunicorn

    1. 简介 Gunicorn(Green Unicorn)是给Unix用的WSGI HTTP 服务器,它与不同的web框架是非常兼容的.易安装.轻.速度快. 2. 示例代码1 def app(envi ...

  6. Debian7下lnmp+gunicorn部署Django运行环境

    首先安装lnmp,安装方法见lnmp.org wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz && tar zxf lnm ...

  7. apache(nginx)+django+virutalenv(virtualenvwrapper)+gunicorn+supervisor配置高效web环境

    前言 django的调试模式配置简单,用于测试十分方便,但众所周知,这个只适合于调试,生产上运行效率十分低下. 后来考虑用nginx+uwsgi的模式进行,但之前配置过apache+wsgi的方式,感 ...

  8. Gunicorn 和 Nginx

    Web Application Deployment Using Nginx Nginx is a very high performant web server / (reverse)-proxy. ...

  9. Gunicorn 问题

    Does Gunicorn suffer from the thundering herd problem? The thundering herd problem occurs when many ...

随机推荐

  1. vimium Keyboard Bindings

    Modifier keys are specified as `<c-x>`, `<m-x>`, and `<a-x>` for ctrl+x, meta+x, a ...

  2. 如何在maven中添加jar包

    Maven 中央仓库地址: 1. http://www.sonatype.org/nexus/ 2. http://mvnrepository.com/ (本人推荐仓库) 3. http://repo ...

  3. spring-data-jpa Repository的基本知识

    1.项目中的Repository对象的使用 2.Repository 引入的两种方式 继承和使用注解 3.Repository接口的定义 Repository 接口是 spring Data 的一个核 ...

  4. audio patch(10.9.3) [2.6.1]

    ; Basic Block Input Regs: rax -  Killed Regs: <nothing>0000000000048353 3D8419D411             ...

  5. Java 创建文件夹和文件

    String path="D://my"; File folder=new File(path); if(!folder.exists() && !folder.i ...

  6. Java数据结构——优先级队列

    //================================================= // File Name : PriorityQueue_demo //------------ ...

  7. ubuntu-E:Encountered a section with no Package: header的解决办法 (转)

    E:Encountered a section with no Package: header, E:Problem with MergeList /var/lib/apt/lists/cn.arch ...

  8. dedecms笔记

    截取字符串 方法一: [field:title function="cn_substr(@me,10)"/] 方法二: {dede:arclist typeid=’9′ title ...

  9. 如何在ubuntu中启用SSH服务

    如何在ubuntu14.04 中启用SSH服务 开篇科普:  SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为 ...

  10. Shader

    Shader的学习方法总结 http://www.cnblogs.com/Esfog/p/How_To_Learn_Shader.html [Shader 着色器]学习shader之前必须知道的东西之 ...