今天在看python的资料,发现没看关于python作为web应用部署的方法。后来才发现,原来python的web应用功能大都是由开发框架提供的,用这些开发框架开发的程序可以以http、fastcgi、uwsgi等协议对外提供服务,但都是与该应用程序紧密相关的;和Apache的mod_php类似的mod_python文档上声称尚未支持Apache 2.0;没有找到和php-fpm类似的语言级别的fastcgi服务器。
web应用程序的部署是个挺麻烦的事。
- 普通web服务器+cgi:
web服务器需要把URL映射到文件系统,并执行cgi
- 普通web服务器+内置语言处理模块:
(像apache+mod_php这样的)
web服务器需要把URL映射到模块(并判断文件是否存在,可选步骤),并由该模块处理)
普通web服务器+分离式web应用:
(web服务器+php等语言级别的fastcgi、 web服务器+应用级别的fastcgi、uwsgi等种种协议)
web服务器需要把URL映射到后端服务,并由该后端服务处理。而该后端服务还得再把URL映射Class、Function再运行,需要两次regexp匹配。这样就把应用的开发和部署紧密耦合了,增加了部署的麻烦啊
- 20130103更新:随着我对python的学习,我越来越认同python派的WSGI server+框架+应用程序的架构,也认同WSGI server直接对外提供高性能服务的理念。参考Shell Xu的博文
所以:
贝壳的壳: 为什么高性能框架都是http的
http://floss.zoomquiet.org/data/20101118182548/index.html
Pingback: 【思考】PHP——成也Web,败也Web | 80后实话网
Pingback: 【思考】PHP——成也Web,败也Web - 工具云