随笔分类 - web
web server
摘要:在前面的文章曾介绍过gunicorn的syncworker,本文介绍其中一种asyncworker:GeventWorker。类图如下: 可见GeventWorker重载了init_process(这个方法是Worker唯一暴露给外界的接口),源码如下: 1 def init_process(sel
阅读全文
摘要:gunicorn支持不同的worker类型,同步或者异步,异步的话包括基于gevent、基于eventlet、基于Aiohttp(python版本需要大于3.3),也有多线程的版本。下面是gunicorn当前版本(19.6.0)支持的Worker类型: sync eventlet - Require
阅读全文
摘要:在这篇文章中,提到了Master进程对信号的处理函数,其中有两个信号比较有意思。 SIGHUP:用来热更新(Reload)应用 SIGUSR2:用来在线升级(upgrade on the fly)gunicorn 下面来详细看一下: SIGHUP: Reload the configuration,
阅读全文
摘要:如前文所述,Arbiter是gunicorn master进程的核心。Arbiter主要负责管理worker进程,包括启动、监控、杀掉Worker进程;同时,Arbiter在某些信号发生的时候还可以热更新(reload)App应用,或者在线升级gunicorn。Arbiter的核心代码在一个文件里面
阅读全文
摘要:gunicorn是一个python Wsgi http server,只支持在Unix系统上运行,来源于Ruby的unicorn项目。Gunicorn使用prefork master-worker模型(在gunicorn中,master被称为arbiter),能够与各种wsgi web框架协作。gu
阅读全文
摘要:bottle 是一个轻量级的python web框架, 可以适配各种web服务器,包括python自带的wsgiref(默认),gevent, cherrypy,gunicorn等等。bottle是单文件形式发布,源码在这里可以下载,代码量不多,可以用来学习web框架。这里也有官方文档的中文翻译。
阅读全文
摘要:wsgi全称是"Web Server Gateway Interfacfe",web服务器网关接口,wsgi在python2.5中加入,是web服务器和web应用的标准接口,任何实现了该接口的web服务器和web应用都能无缝协作。来看一个形象点的图: 如上图所示(图片来自这里),wsgi一端连接we
阅读全文