您的位置:首页 > 编程语言 > Go语言

django部署

2015-11-04 17:53 190 查看
相关技术: 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: