简介
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可以支持多进程和多线程的方式启动应用,也可以监控应用的运行状态。我们将启动的命令改为:
$

本文介绍了如何使用uWSGI和Nginx来运行和部署Python应用,包括uWSGI的安装、配置,通过uWSGI运行Flask应用,使用Python虚拟环境,以及在同一Nginx服务器上部署多个应用的方法。
最低0.47元/天 解锁文章
2165

被折叠的 条评论
为什么被折叠?



