常見的網站部署流程一般有三層結構:
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
以上純屬個人愚見,如果有不對的地方,很希望大家指出,因爲我對這個也比較模糊