常见的网站部署流程一般有三层结构:
web server -> application server -> DB server
以python应用为例,对于web server主要有nginx,apache,iis等,有三个功能:
- 高效率处理静态文件,web server都是用c开发,调用是native的函数,对IO,文件传输都做针对性的优化
- 充当一个简易的网络防火墙,可以denny一些ip,简单的控制并发连接数量等等,聊胜于无
- 处理高并发短连接请求,把成千上万用户的request 通过内网的几十个长连接进行转发,原因一个是web server处理高并发很专业,另外一个原因是大部分的application所用的框架都不具备处理高并发的能力
但是web服务器不提供对事物的支持,不提供对数据源的支持,不能解析代码,所以需要应用服务器,即application server,像uwsgi,gunicorn这些Python WSGI UNIX的HTTP服务器可以很好地作为应用服务器与web框架兼容,其中tornado即是web框架,也可以单独提供高性能http server,因此也可以作为应用服务器
参考资料:
http://www.open-open.com/lib/view/open1385131452292.html
http://blog.tianya.cn/blogger/post_show.asp?BlogID=229728&PostID=9891654
以上纯属个人愚见,如果有不对的地方,很希望大家指出,因为我对这个也比较模糊