flup是一个python开发包,提供WSGI,AJP,FastCGI,和SCGI协议的server程序接口,是django的好基友,web.py要部署也离不开它

用django写完网站,部署的时候,总得和web server连接上吧,flup就是干这个活的

本微博是用django开发,基于flup部署的,更多的部署方法可以参考:全面解读python web 程序的9种部署方式.本站使用的的部署bash脚本如下


#!/bin/sh
kill -9 `cat /tmp/django.pid`
echo 'restart django....'
python ./manage.py runfcgi --settings=lutaf.settings_r maxchildren=8  maxspare=3 minspare=1 method=prefork  pidfile=/tmp/django.pid host=127.0.0.1 port=9900 outlog=/tmp/dj.out errlog=/tmp/dj.error

WSGI,AJP,SCGI只是数据包协议,从服务器网络IO模型来说,flup主要支持2种

  1. prefork:就是本站用的,经典3步 create,bind,listen -> fork ->accept
  2. multithread: create,bind,listen,accept ->thread
  3. 另外还有一种single server模式,只是调试用

flup在子进程或者线程里面,处理client已经建立的连接,都是用的non-blocking socket,用select处理event事件,效率一般

本文地址: http://lutaf.com/217.htm 鲁塔弗原创文章,欢迎转载,请附带原文链接