简介
uWSGI是一个Web应用服务器
,它具有应用服务器,代理,进程管理及应用监控等功能。
它支持WSGI协议,同时它也支持自有的uWSGI协议,该协议据说性能非常高,而且内存占用率低,为mod_wsgi的一半左右,我没有实测过。它还支持多应用的管理及应用的性能监控。
虽然uWSGI本身就可以直接用来当Web服务器,但一般建议将其作为应用服务器配合Nginx一起使用,这样可以更好的发挥Nginx在Web端的强大功能。
本文我们就来介绍如何搭建uWSGI+Ngnix环境来运行Python应用。
安装uWSGI
先从安装开始,建议采用最简单的方式,就是使用pip命令:
$ pip install uwsgi
安装成功后,你可以查看下当前的uwsgi的版本:
$ uwsgi --version
让我们来写个Hello World的WSGI应用,并保存在”server.py”文件中:
def application(environ, start_response):
status = '200 OK'
output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
这个代码同之前介绍mod_wsgi时使用的例子完全一样。让我们在uWSGI中运行它,执行命令:
$ uwsgi --http :9090 --wsgi-file server.py
然后打开浏览器,访问”http://localhost:9090″,你就可以看到”Hello World!”字样了。
上面的命令中”- -http”参数指定了HTTP监听地址和端口,”- -wsgi-file”参数指定了WSGI应用程序入口,uWSGI会自动搜寻名为”application”的应用对象并调用它。
更进一步,uWSGI可以支持多进程和多线程的方式启动