Gunicorn 文档翻译

服务器模式

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 就是这种类型加载的一个例子.

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

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

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

时间: 2024-10-11 13:46:38

Gunicorn 文档翻译的相关文章

Lua2.4 文档翻译

Lua2.4 文档翻译完了,这次的翻译感觉和 Lua1.1 的时候有点不一样. 这次也是在业余时间里断断续续的完成的,所以,进度也同样是比较慢. 这次的翻译内容明显比 Lua1.1 的时候多了很多,1.1 的时候手册是 19 页,这次的手册是 38 多页.不过,算一算,1.1 的时候是两个文档,加在一起的话就和 2.4 差不多了. 翻 译时是以 1.1 做为基础的,在翻译的过程中顺便发现 1.1 的不少的翻译错误之处.好的是基本上都是比较低级的错误,比如输入错误和句子明显的不通顺.就不在老版本上

CMDB之部署Django Nginx+Gunicorn+virtualenv+supervisord应用

应用搭建好了,该上线部署: 虚拟环境需安装的包: (Dfcenv) [[email protected] Dfcenv]# pip list Django (1.10.1) gunicorn (19.6.0) meld3 (1.0.2) MySQL-python (1.2.5) pip (8.1.2) setuptools (26.1.1) supervisor (3.3.1) wheel (0.29.0) gunicorn配置如下: (Dfcenv) [[email protected] Df

Hibernate 3.3.2 文档翻译 Day01

Hibernate 3.3.2 文档翻译 翻译人:微冷的雨 第一次书写:2015年11月29日 本人呕心沥血之作,请细心阅读领悟! Day01-1.1 项目描述 微冷的雨翻译:例如,我们将要建立一个可以存储我们关注的events(注:实体集合)和相关信息的小型数据库应用. 注意(Tip):虽然你可以使用任何你感觉合适的数据库,我们将使用HSQLDB(内存级别)这款数据库,以避免对数据库服务器的安装. Day01-1.1.1 项目构建 微冷的雨翻译:我们的首要工作是搭建开发环境.我们将使用我们提倡

Swift 集合类型(Collection Type) 之 字典(dictionary)(官方文档翻译及总结)

Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组和字典中存储的数据值类型必须明确.这意味着我们不能把不正确的数据类型插入其中.Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚.也让我们在开发中可以早早的找到任何的类型不匹配错误.如果你用变量(var)创建的集合,这些集合就是可变的(增删改).如果用常理创建的,这些集合是不能被操作的. 注意: 如果集合的元素是不变的,那就将集合声明为常量.这样Swift编译器能对你创建的集合做性能优化. 1. 数组(arr

NServiceBus官方文档翻译(一)NServiceBus 概况

NServiceBus 概况 NServiceBus 被设计用来组合面向业务的服务,它并不是用来替代诸如 WCF 一类的RPC技术. NServiceBus 不只包含通信模块,像其他成熟的SOA和DDD项目一样,它使用了多种组合的方法和技术. 本篇文章探讨了 NServiceBus 和微软相关产品的相似点和不同点. 相比 BizTalk 更接近 WCF 当人们听到“服务总线”这个名词时,一般会描绘出如上图所示的画面,像 BizTalk 一样所有的通信都经过一个中央结点.这实际上描述的是一个代理的

Nginx+Gunicorn+virtualenv+supervisord+Postgresql部署Django应用

关于Django应用部署 Django是一个高效.多功能和动态地进化的Web应用开发框架.目前比较流行的部署.运行Django应用方式是基于Apache的mod_wsgi模块,但更加高效.弹性,同时又更加复杂的方式是使用以下工具来部署实施:Nginx.Gunicorn.virtualenv.supervisord.Postgresql.以下详细介绍如何结合这些工具来部署Django应用到Linux上. 准备工作 需要有一台拥有root权限的Linux服务器,这是部署应用的平台.本文采用CentO

swift中文文档翻译之--字符串和字符

字符串和字符 A string is an ordered collection of characters, such as "hello, world" or "albatross". Swift strings are represented by the String type, which in turn represents a collection of values of Character type. Swift's String and Char

Python3.2官方文档翻译--标准库概览(一)

7.1 操作系统接口 Os模块提供主要许多与操作系统交互的函数. >>> import os >>> os.getcwd() # Return the current working directory 'C:\\Python31' >>> os.chdir('/server/accesslogs') # Change current working directory >>> os.system('mkdir today') # R

CloudStack中文文档翻译规范--不间断更新

目前CS中文文档翻译工作稳步进行中,但安装指南翻译完成后发现些许问题,大多为翻译规范问题,为了解决该问题,遂整理出CS中文文档翻译规范供各位翻译官查阅. 特殊格式翻译时注意事项: 进行CS文档翻译时,时常会在翻译时看到特殊格式的条目,以下表格按类型分类描述哪些特殊类型的格式该如何翻译. 类型 原文示例(翻译前) 正确格式示例(翻译后) 注意 字体加粗 **Path.** The exported path from the server. **路径.** 服务器输出的路径. **xxx** 必须