iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Gunicorn:开源Python WS
  • 205
分享到

Gunicorn:开源Python WS

开源GunicornWS 2023-01-31 03:01:34 205人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

1. 关于GunicornGunicorn是一个开源的python WSGI Http服务器,移植于Ruby的Unicorn项目的采用pre-fork模式的服务器。Gunicorn服务器可与各种WEB框架,包括Django、flask、py

1. 关于Gunicorn


Gunicorn是一个开源python WSGI Http服务器,移植于Ruby的Unicorn项目的采用pre-fork模式的服务器。Gunicorn服务器可与各种WEB框架,包括Djangoflask、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个工作进程就能够每秒处理成百上千的请求,所以不需要扩充太多的进程数。

                                                                                                            ——游响云停



--结束END--

本文标题: Gunicorn:开源Python WS

本文链接: https://www.lsjlt.com/news/187300.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Gunicorn:开源Python WS
    1. 关于GunicornGunicorn是一个开源的Python WSGI HTTP服务器,移植于Ruby的Unicorn项目的采用pre-fork模式的服务器。Gunicorn服务器可与各种Web框架,包括django、flask、py...
    99+
    2023-01-31
    开源 Gunicorn WS
  • python之gunicorn的配置
    为了实现并发,python常见的web部署搭配nginx + gunicorn, flask + gunicorn 本文介绍gunicorn的配置和使用。 1. 安装gunicorn pip install gunicorngunicorn...
    99+
    2023-09-11
    gunicorn
  • python中Gunicorn的作用是什么
    今天就跟大家聊聊有关python中Gunicorn的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据...
    99+
    2023-06-14
  • 一文弄懂 Gunicorn 与 Python GIL
    什么是 Python GIL,它是如何工作的,以及它如何影响 gunicorn。生产环境我应该选择哪种 Gunicorn worker类型?Python 有一个全局锁 (GIL),它只允许一个线程运行(即解释字节码)。在我看来,如果你想优化...
    99+
    2023-05-14
    Python gunicorn
  • Python:***测试开源项目
    sql注入工具:sqlmapDNS安全监测:DNSRecon暴力破解测试工具:patatorXSS漏洞利用工具:XSSer Web服务器压力测试工具:HULK SSL安全扫描器:SSLyze 网络Scapy: send, sniff and...
    99+
    2023-01-31
    开源 测试 项目
  • Python开源框架总结
    Django: Python Web应用开发框架Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就...
    99+
    2023-01-31
    开源 框架 Python
  • 有哪些python开源框架
    本篇内容主要讲解“有哪些python开源框架”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些python开源框架”吧!  1、Django: Python Web应用开发框架,Django是...
    99+
    2023-06-01
  • python的开源库有哪些
    Python有很多开源库,以下是一些常用的库:1. Numpy:用于科学计算的基础库,提供了大量的数学和数组操作功能。2. Pand...
    99+
    2023-09-22
    python
  • Python开源项目有哪些
    本篇内容介绍了“Python开源项目有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. fastapihttps://github.c...
    99+
    2023-06-16
  • Python Flask开源博客系统Bl
            本博文在51CTO技术博客首发。        开源不易,Python良心之作,真心送给广大朋友,恳请给予支持,不胜感激!                大家可以从下面的地址中去体验Blog_mini的功能,我把副本部署在了...
    99+
    2023-01-31
    开源 系统 博客
  • 10大Python开源项目推荐
    本文是 Mybridge 挑选的 10 个 Python 开源项目,Github 平均star 2135,希望你能够喜欢~~▌Rank 1:Requests-HTML v0.9(7385 stars on Github,来自Kenneth ...
    99+
    2023-01-31
    开源 项目 Python
  • 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 文件和目录操...
    99+
    2023-01-31
    示例 开源 代码
  • Python Flask开源个人博客代码
    没有写html模板继承,有时间再补吧,或者感兴趣的自己抽取一下 博客演示站点:http://www.7z1.xyz/ 如出现未备案,请直接访问:http://119.23.230.6/ 后台管理地址:/admin/login ...
    99+
    2023-01-31
    开源 代码 博客
  • 国内最火的开源项目 —— Python
    截止目前开源中国收录了 44478 款开源项目,囊括了最热门的各类开源项目,而软件的评分在一定程度上代表了软件的质量和热度,而 Python 语言近年来发展势头一路攀升,因此本文整理了 Python 语言中评分超过 8.0 分的几款项目管...
    99+
    2023-01-31
    最火 开源 项目
  • python中h5py开源库怎么使用
    这篇文章主要介绍“python中h5py开源库怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中h5py开源库怎么使用”文章能帮助大家解决问题。一、h6py模块介绍h6py简单介绍...
    99+
    2023-06-30
  • freeswitch开源通信 python模块介绍
    目录1、概述2、环境3、安装mod_python模块4、python脚本5、配置启动6、测试1、概述 freeswitch支持多种语言的业务开发,包括C/C++,java,pyth...
    99+
    2024-04-02
  • 11.python开源——工程项目结构
            工程项目结构需要先弄清三个概念:包、模块、类         模块对应的是一个.py 文件,那么module_name 就是这个文件去掉.py 之后的文件名,py 文件中可以直接定义一些变量、函数、类。 导入模块 impo...
    99+
    2023-01-31
    工程项目 开源 结构
  • 开源python网络爬虫框架Scrapy
    介绍:所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据。不过由于一个网站的网页很多,而我们又不可能事先知道所有网页的URL地址,所以,如何保证我们抓取到了网站的所...
    99+
    2023-01-31
    爬虫 开源 框架
  • github开不开源
    Github是全球最大的代码托管平台之一,自2008年上线以来已经成为开发者和开源社区的不可或缺的组成部分。然而,最近有一些声音认为Github不再符合开源理念,原因是Github逐渐趋向私有化、商业化,甚至不再遵循开源社区的规章制度,这是...
    99+
    2023-10-22
  • 炸弹人小游戏代码开源(python)
    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放,当遵从一心,踏浪而往,纵千山万水, 也要抵达。 目录 一...
    99+
    2023-09-02
    python pygame 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作