我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Gunicorn:开源Python WS

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Gunicorn:开源Python WS

1. 关于Gunicorn


Gunicorn是一个开源的Python WSGI HTTP服务器,移植于Ruby的Unicorn项目的采用pre-fork模式的服务器。Gunicorn服务器可与各种Web框架,包括django、flask、pyramid等。只要简单配置执行,轻量级的资源消耗,而且相当迅速。与各个Web结合紧密,部署很方便。缺点不支持HTTP 1.1,并发访问性能也不高。


关于WSGI:WSGI即Python Web server Gateway Interface,是Python专门的用于Python应用程序或框架与Web服务器之间的一种接口,没有官方的实现,因为WSGI更像一个协议,只要遵照这些协议,WSGI应用都可以在任何服务器上运行,反之亦然。


Gunicorn的特征:

  1. 支持WSGI,Django和Paster

  2. 自动化的工作进程管理

  3. 简单的Python配置

  4. 多工作者配置

  5. 多种服务器钩子以便扩展

  6. 兼容Python 2.x >=2.6 或 3.x >=3.1



2. 安装Gunicorn


1. 安装

Gunicorn有很多种安装方式,为方便在Python的虚拟环境中使用,使用easy_install或pip来安装:

virtualenv gunicorn_env

cd gunicorn_env

source bin/activate

pip install gunicorn

其他安装可参考文档:Installation


2. 运行

运行Gunicorn可以通过命令gunicorn或者与Django、Paster结合使用的gunicorn_django、gunicorn_paster来实现:


gunicorn:使用该命令来运行一个不需要传输层的WSGI应用,基本语法:

gunicorn [OPTIONS] APP_MODULE

示例:cat myapp.py

def app(environ, start_response):
        data = "Hello, Jay!\n"
        start_response("200 OK", [
                ("Content-Type", "text/plain"),
                ("Content-Length", str(len(data)))
        ])
        return iter([data])

执行:gunicorn -w 4 myapp:app

2014-06-12 16:40:42 [14835] [INFO] Starting gunicorn 18.0
2014-06-12 16:40:42 [14835] [INFO] Listening at: http://127.0.0.1:8000 (14835)
2014-06-12 16:40:42 [14835] [INFO] Using worker: sync
2014-06-12 16:40:42 [14840] [INFO] Booting worker with pid: 14840
2014-06-12 16:40:42 [14841] [INFO] Booting worker with pid: 14841
2014-06-12 16:40:43 [14842] [INFO] Booting worker with pid: 14842
2014-06-12 16:40:43 [14843] [INFO] Booting worker with pid: 14843

通过浏览器访问http://127.0.0.1:8000显示“Hello Jay!”


gunicorn_django:这个脚本专门用来部署基于Django框架的应用,

gunicorn_django [OPTIONS] [SETTINGS_PATH]

默认SETTINGS_PATH会在当前目录下查找settings.py


gunicorn_paster:部署兼容Paster的框架的应用

gunicorn_paster [OPTIONS] paste_config.ini


3. Gunicorn架构


1. 服务器模式

Gunicorn基于pre-fork的工作者模式,即有一个中央master进程来管理一系列的工作进程,master并不知道各个独立客户端。所有的请求和响应完全由工作进程去完成。

master通过一个循环不断监听各个进程的信号并作出相应反应,这些信号包括TTIN、TTOU和CHLD。TTIN和TTOU告诉master增加或者减少正在运行的进程数,CHLD表明一个子进程被终止了,在这种情况下master进程会自动重启这个失败的进程。


2. 进程的同步和异步模式

默认情况下,Gunicorn的工作进程是同步执行的模式,即单个进程在某个时间只处理一个请求。同时,Gunicorn也支持Gevent、Eventlet来实现异步,通过--worker-class选项可以指定工作方式:

gunicorn --worker-class=gevent myapp:app

以下是官方列举的需要异步工作模式的情况:

  • Applications making long blocking calls (Ie, external web services)

  • Serving requests directly to the internet

  • Streaming requests and responses

  • Long polling

  • Web sockets

  • Comet


3. 进程数

Gunicorn只需要4-12个工作进程就能够每秒处理成百上千的请求,所以不需要扩充太多的进程数。

                                                                                                            ——游响云停



免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Gunicorn:开源Python WS

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Gunicorn:开源Python WS

1. 关于GunicornGunicorn是一个开源的Python WSGI HTTP服务器,移植于Ruby的Unicorn项目的采用pre-fork模式的服务器。Gunicorn服务器可与各种Web框架,包括django、flask、py
2023-01-31

Python开源框架总结

Django: Python Web应用开发框架Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就
2023-01-31

Python:***测试开源项目

sql注入工具:sqlmapDNS安全监测:DNSRecon暴力破解测试工具:patatorXSS漏洞利用工具:XSSerWeb服务器压力测试工具:HULKSSL安全扫描器:SSLyze网络Scapy: send, sniff and di
2023-01-31

有哪些python开源框架

本篇内容主要讲解“有哪些python开源框架”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些python开源框架”吧!  1、Django: Python Web应用开发框架,Django是
2023-06-01

Python开源项目有哪些

本篇内容介绍了“Python开源项目有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. fastapihttps://github.c
2023-06-16

python的开源库有哪些

Python有很多开源库,以下是一些常用的库:1. Numpy:用于科学计算的基础库,提供了大量的数学和数组操作功能。2. Pandas:提供了用于数据分析和处理的数据结构和函数。3. Matplotlib:用于绘制图表和可视化数据的库。4
2023-09-22

10大Python开源项目推荐

本文是 Mybridge 挑选的 10 个 Python 开源项目,Github 平均star 2135,希望你能够喜欢~~▌Rank 1:Requests-HTML v0.9(7385 stars on Github,来自Kenneth 
2023-01-31

Python Flask开源博客系统Bl

本博文在51CTO技术博客首发。        开源不易,Python良心之作,真心送给广大朋友,恳请给予支持,不胜感激!                大家可以从下面的地址中去体验Blog_mini的功能,我把副本部署在了腾讯云上供大家使
2023-01-31

Python六大开源框架对比

Python 是一门动态、面向对象语言。其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性。除了语言本身的设计目的之外,Python标准 库也是值得大家称赞的,Python甚至还自带服务器。其它方面,Python拥有足
2022-06-04

PYTHON开源项目及示例代码

1 算法1.1 字符串处理1.2 数学类1.3 安全类2 跨编程语言2.1 整合 C / C++ 语言2.2 整合 JVM 平台2.3 整合 dotNet 平台2.4 整合 Objective-C 语言3 操作系统相关3.1 文件和目录操作
2023-01-31

Python Flask开源个人博客代码

没有写html模板继承,有时间再补吧,或者感兴趣的自己抽取一下博客演示站点:http://www.7z1.xyz/如出现未备案,请直接访问:http://119.23.230.6/后台管理地址:/admin/login
2023-01-31

python中h5py开源库怎么使用

这篇文章主要介绍“python中h5py开源库怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中h5py开源库怎么使用”文章能帮助大家解决问题。一、h6py模块介绍h6py简单介绍
2023-06-30

开源python网络爬虫框架Scrapy

介绍:所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据。不过由于一个网站的网页很多,而我们又不可能事先知道所有网页的URL地址,所以,如何保证我们抓取到了网站的所
2023-01-31

11.python开源——工程项目结构

工程项目结构需要先弄清三个概念:包、模块、类        模块对应的是一个.py 文件,那么module_name 就是这个文件去掉.py 之后的文件名,py 文件中可以直接定义一些变量、函数、类。导入模块import module_na
2023-01-31

国内最火的开源项目 —— Python

截止目前开源中国收录了 44478 款开源项目,囊括了最热门的各类开源项目,而软件的评分在一定程度上代表了软件的质量和热度,而 Python 语言近年来发展势头一路攀升,因此本文整理了 Python 语言中评分超过 8.0 分的几款项目管理
2023-01-31

2017年30个惊艳的Python开源项

【摘要】本文来自Mybridge,介绍了过去一年里30个惊艳的Python开源项目。点击阅读原文每一个都可以在GitHub上看到更为详细的内容。以下是译文。在过去的一年里,Mybridge AI 比较了近15000个开源Python项目,选
2023-01-31

教你阅读Python开源项目代码

作者:董伟明链接:https://zhuanlan.zhihu.com/p/22275595来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。注:本专栏文章未经允许请勿转载。知乎上有不少人问和关注阅读开源项目代码
2023-01-31

Python进度条开源库指的是什么

Python进度条开源库指的是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。现在,alive-progress 来了,它是一个 Python 下的进度条库,不仅使用方便而且
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录