简介
WSGI 的全称Web 服务器网关接口
,如果读者不太理解的话,可以参考一下我之前写过的一篇文章:wsgi
简单介绍 进行了解。而本文将介绍的
uWSGI
是一款用来在服务器上部署 WSGI应用
的工具。这里需要澄清一下的是有几个概念很容易混淆,它们分别是 wsgi
、uwsgi
和uWSGI
。这里对他们进行一个诠释:
- wsgi: Web服务器和应用之间的协议,也就是规定了 Web服务器如何调用 WSGI 应用
- uwsgi:同样是 Web 服务器和应用之间的协议,不过是规定了 Web 服务器如何调用 uwsgi 应用。
- uWSGI:是一个 uwsgi 服务器,可以运行 wsgi 应用。
安装
uWSGI
的安装很方便,直接使用 pip
安装即可。
pip install uwsgi
配置应用
要想让 WSGI应用
使用 uWSGI 运行起来,那么需要一个单独的启动脚本,一般都命名为:wsgi.py,里面必须要有一个叫做
application
的成员,然后必须是一个WSGI对象
(见文章wsgi 简单介绍)。例如,一个简单的例子就是:
//wsgi.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
启动应用
编写好启动脚本之后,直接使用这条命令即可启动 uWSGI
:
uwsgi --http :9090 --wsgi-file wsgi.py
然后会看到一系列输出:
... ...
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0xcf7480 pid: 47381 (default app)
*** uWSGI is running in multiple interpreter mode ***
然后你就可以访问一下本地的 9090
端口了,这时你应该会看到的是 :
Hello World
结合 Nginx
uwsgi协议
原生得被 nginx 支持,所以在 nginx
上使用 uwsgi
的配置非常简单,例如,最简单的配置就这样:
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;
}
然后你重启一下你的 nginx,会发现这样就生效了!!!