django部署

来源:互联网 发布:mac 照片 文件夹 分类 编辑:程序博客网 时间:2024/06/06 03:11

相关技术:  haproxy_keepalived_nginx_uwsgi_gevent_django

之前部署django一直采用 apache + mod_wsgi,用得倒也没啥问题,看到越来越多的人采用nginx部署,所以也尝试了一下,结果很让人欣喜。

nginx够小够简洁,编译、配置相当简单,但要知道她仅仅是个静态webserver,动态功能需要搭配相应的cgi来实现; 

uwsgi是个啥东西,看其官方文档还真写的相当详细,功能很丰富,但我的需求可能只会使用其30%的功能;

uwsgi可以认为是python代码运行的loader,或者是容器(container),这有点像java的 container(resin,tomcat)。看了其配置文档,很是惊喜,其不仅可以配置为多进程+多线程模式,也可以配置为单进程+多线程模式,并 能保持高并发高销率,非常感兴趣。

一直以来自己总在寻找一种 高效、灵活的django的应用容器。

apache默认都是多进程模式,http又是无状态的,不同的请求被分派到不同的进程处理,request处理都是隔离的。多进程带来的问题是高昂的系统开销(apache也支持多线程处理)。

这种隔离又带来了诸多不便,request之间不能共享状态、数据和协作,不能很好的完成与外部系统的协同工作(例如request共享同一个服务器的socket连接或者访问控制某个rs232端口)

所以很想有种类似java的应用容器这样的东东。 

接触了gevent,其核心是io异步分派,单线程模拟多协程来对应用层多任务的支持,几近疯狂io效率得到了我的认可。ps:八过smp系统就应该启动多个gevent服务,不然其他核心数都浪费了。

采用gevent+django的模式搭建了自己得app容器,也跑了几个项目,总体效果还是可以。

nginx+uwsgi+django 的配合开始应用到新项目中

  • 本文来自:爱好Linux技术网
  • 本文链接:http://www.ahlinux.com/python/18223.html
0 0
原创粉丝点击