1、fastcgi ,通過flup模塊來支持,在nginx里對應的配置指令是 fastcgi_pass
2、http,nginx使用proxy_pass轉發,這個要求后端appplication必須內置一個能處理高并發的http server,在python的web框架當中,只能選擇tornado.
3、uwsgi,包括4部分組成:
uwsgi協議 web server內置支持協議模塊 application服務器協議支持模塊 進程控制程序nginx從0.8.4開始內置支持uwsgi協議,uwsgi協議非常簡單,一個4個字節header+一個body,body可以是很多協議的包,比如說http,cgi等(通過header里面字段標示)。
uwsgi的特點在于自帶的進程控制程序.它是用c語言編寫,使用natvie函數,其實和spawn-fcgi/php-fpm類似。所以uwsgi可以支持多種應用框架,包括(python,lua,ruby,erlang,go)等等
4、mod_python,這是apache內置的模塊,很嚴重的依賴于mod_python編譯使用的python版本,和apache配套使用,不推薦
5、cgi,這個太old,不推薦,而且nginx不支持cgi方式,只能用lighttpd或者apache
6、spawn-fcgi,這個是fastcgi多進程管理程序,lighttpd安裝包附帶的,和 flup效果一樣,區別是flup是 python代碼級引入,spawn-fcgi是外部程序。spawn-fcgi用途很廣,可以支持任意語言開發的代碼,php,python,perl,只要你代碼實現了fastcgi接口,它都可以幫你管理你的進程
7、scgi,全名是Simple Common Gateway Interface,也是cgi的替代版本,scgi協議很簡單,我覺得和fastcgi差不多,只是沒有怎么推廣開來,nginx對應的配置指令是scgi_pass,你想用就用,flup也支持。
8、Gunicorn,和uwsgi類似的工具,從rails的部署工具(Unicorn)移植過來的。但是它使用的協議是 WSGI,全稱是Python Web Server Gateway Interface ,這是python2.5時定義的官方標準(PEP 333 ),根紅苗正,而且部署比較簡單,http://gunicorn.org/ 上有詳細教程
9、mod_wsgi,apache的一個module,也是支持WSGI協議,https://code.google.com/p/modwsgi/
uwsgi
安裝uwsgi
pip install uwsgi
配置uwsgi
uwsgi 有多種配置可用:
1,ini 2,xml 3,json4,yaml
配置示例
$ cat etc/uwsgi.ini [uwsgi]socket = 127.0.0.1:9005chdir = /Users/suoning/python_project/trunk/wsgi-file = main.pyprocesses = 4stats = 127.0.0.1:9000daemonize = /tmp/uwsgiServer.logpidfile = /tmp/uwsgi.pidvacuum = truelog-maxsize = 50000000disable-logging = truecallable = app$
配置參數詳解:
常用選項:
socket : 地址和端口號,例如:socket = 127.0.0.1:50000
processes : 開啟的進程數量
workers : 開啟的進程數量,等同于processes(官網的說法是spawn the specified number of workers / processes)
chdir : 指定運行目錄(chdir to specified directory before apps loading)
wsgi-file : 載入wsgi-file(load .wsgi file)
新聞熱點
疑難解答